loopback.getCurrentContext()
には長期的に不安定な問題があり、現在は廃止予定であるため、ユーザーがAPIエンドポイント経由でいくつかの操作を実行する際に、現在のユーザーIDをループバックで取得する方法
リクエストペイロードにトークンIDを送信して確認できますか?ユーザーがそれを偽造するとどうなりますか? Githubの問題ページからそれらのハッキーなソリューションの代替案は何ですか?
loopback.getCurrentContext()
には長期的に不安定な問題があり、現在は廃止予定であるため、ユーザーがAPIエンドポイント経由でいくつかの操作を実行する際に、現在のユーザーIDをループバックで取得する方法
リクエストペイロードにトークンIDを送信して確認できますか?ユーザーがそれを偽造するとどうなりますか? Githubの問題ページからそれらのハッキーなソリューションの代替案は何ですか?
あなたが反応してAccessTokenをあなたに戻って与える必要があり、その中にユーザーがログインしたら、要約するとhttps://docs.strongloop.com/display/public/LB/Making+authenticated+requests
をチェックしてください。アクセストークンは、リクエストごとにチェックされているとして、それは現在だことを確認するために、これは簡単に偽造することはできません
# Authorization Header
curl -X GET -H "Authorization: $ACCESS_TOKEN" \
http://localhost:3000/api/widgets
# Query Parameter
curl -X GET http://localhost:3000/api/widgets?access_token=$ACCESS_TOKEN
: あなたは、あなたがユーザーでログインしていることを証明するために、ヘッダーまたはクエリ文字列にそれを使用することができます有効です。
あなたはこれをしたら、あなたは
app.use(function(req, res, next) {
app.currentUser = null;
if (!req.accessToken) return next();
req.accessToken.user(function(err, user) {
if (err) return next(err);
req.currentUser = user;
next();
});
});
があなたのserver.js
または起動スクリプトにこれを追加し、それゆえ持つ(REQオブジェクトにユーザーを取り付ける以外https://github.com/strongloop/loopback/issues/569#issuecomment-60924099から取られた)を介してaccessTokenで取得することができますuser
オブジェクトはいつでもctx.req.currentUser
にあります。
操作フックでctx.reqオブジェクトを取得できますか? – Asaf
いいえ簡単にはありません。私はそれをすることができなかったし、私は行った。操作フックでユーザーを取得することは、現在私が遭遇した最大のループバック問題です。見ているが、短期間には何も期待していないという顕著な問題があります。ごめんなさい。 – JonRed
ありがとうございます。 DBのいくつかの所有者のプロパティに現在のユーザーを保存するための最良の方法は何ですか? – Asaf