1

Oauth2 と nodeJS で API エンドポイントを保護しようとしています。Oauth2orize の Github ページで提供されているすべての例に従い、db をカスタマイズして MySQL サーバーでデータを取得します。トークンは DB に格納され、uid のユーザー プロファイルに関連付けられます。

最後に、URL /api/userinfo を呼び出すと、ベアラー ステートジーが呼び出されず、コンソール (console.log でさえ) に出力がありません。

以下のコードを見つけてください。

app.get('/api/userinfo', user.info);

exports.info = [
  passport.authenticate('bearer', { session: false }),
  function(req, res) {
    // req.authInfo is set using the `info` argument supplied by
    // `BearerStrategy`.  It is typically used to indicate scope of the token,
    // and used in access control checks.  For illustrative purposes, this
    // example simply returns the scope in the response.
    res.json("Hello")
  }
]

passport.use(new BearerStrategy({},
  function(accessToken, done) {
    console.log("gell");
    db.accessTokens.find(accessToken, function(err, token) {
      if (err) { return done(err); }
      if (!token) { return done(null, false); }
      db.users.find(token.userID, function(err, user) {
        if (err) { return done(err); }
        var info = { scope: '*' }
        console.log(user.cn)
        done(null, user, info);
      });
    });
  }
));

この戦略が呼び出されなかった理由はありますか? この状況をデバッグするにはどうすればよいですか?

4

1 に答える 1