2017-08-17 3 views
0

ループバックアプリケーションがあり、モデル名の写真があります。私は自分のローカルホストに勤務し、Post in Photosモデルを試してみるとうまくいきます。しかし、私はそれを構築し、オンラインサーバー上でPOSTしようとすると、私は認証が必要なエラーを取得します。ループバックPOSTメソッドが動作していません

このような私のACLルック:

"acls": [ 
{ 
    "accessType": "*", 
    "principalType": "ROLE", 
    "principalId": "$everyone", 
    "permission": "DENY" 
}, 
{ 
    "accessType": "*", 
    "principalType": "ROLE", 
    "principalId": "admin", 
    "permission": "ALLOW" 
}, 
{ 
    "accessType": "*", 
    "principalType": "ROLE", 
    "principalId": "$owner", 
    "permission": "ALLOW" 
}, 
{ 
    "accessType": "EXECUTE", 
    "principalType": "ROLE", 
    "principalId": "$everyone", 
    "permission": "ALLOW", 
    "property": "findById" 
}, 
{ 
    "accessType": "EXECUTE", 
    "principalType": "ROLE", 
    "principalId": "$everyone", 
    "permission": "ALLOW", 
    "property": "__get__comments" 
}, 
{ 
    "accessType": "EXECUTE", 
    "principalType": "ROLE", 
    "principalId": "$everyone", 
    "permission": "ALLOW", 
    "property": "__count__comments" 
}, 
{ 
    "accessType": "EXECUTE", 
    "principalType": "ROLE", 
    "principalId": "$everyone", 
    "permission": "ALLOW", 
    "property": "__get__likes" 
}, 
{ 
    "accessType": "EXECUTE", 
    "principalType": "ROLE", 
    "principalId": "$everyone", 
    "permission": "ALLOW", 
    "property": "__count__likes" 
}, 
{ 
    "accessType": "EXECUTE", 
    "principalType": "ROLE", 
    "principalId": "$authenticated", 
    "permission": "ALLOW", 
    "property": "__create__comments" 
}, 
{ 
    "accessType": "EXECUTE", 
    "principalType": "ROLE", 
    "principalId": "$everyone", 
    "permission": "ALLOW", 
    "property": "find" 
}, 
{ 
    "accessType": "EXECUTE", 
    "principalType": "ROLE", 
    "principalId": "$authenticated", 
    "permission": "ALLOW", 
    "property": "create" 
} 
+0

私はあなたが最初に、任意のACLなしの経路をテストするべきだと思います。それが動作する場合は、次の手順に進み、ACLを追加することができます。あなたのルートとそのパラメータも含めることができますか? –

答えて

0

まず、いくつかのクリーンアップ:あなたは、単一のブロックに多くの類似ACLSsを組み合わせることができます。

{ 
    "accessType": "EXECUTE", 
    "principalType": "ROLE", 
    "principalId": "$everyone", 
    "permission": "ALLOW", 
    "property": [ 
    "find", 
    "findById", 
    "__get__likes", 
    "__get__comments", 
    "__count__likes", 
    "__count__comments" 
    ] 
}, 

...と第二:あなたはログインしていますあなたのサーバー上であなたの要求をしようとしているとき? 「承認」トークンが送信されていることを確認してください。あなたのローカルホストと同じデータベースか別のデータベースですか?

+0

YeeHaw1234はい私はログインしていますし、ポストして認証を送信しようとしています。両方のデータベースはMySQLです –

+0

残念ながら私はすぐに答えはありません。私の唯一の提案は、より多くのデバッグです。サーバのコンソールにアクセスできる場合は、DEBUG = loopback:security:access-contextというコマンドでループバックを実行します。これにより、セキュリティデバッグ情報が表示され、誰が正確にログインし、どのメソッドがAUTHORIZATION_REQUIREDエラーを投げているのかがわかります – YeeHaw1234

0

あなたは、次のデバッグオプションを有効にすることで、ルートに適用されるACLチェックすることができます。

DEBUG=loopback:security:acl 

私はACLを設定するには、私の問題を解決するために、このログを使用します。

詳細については、このリンクをチェックしてください:

https://loopback.io/doc/en/lb2/Setting-debug-strings.html#using-debug-strings

関連する問題