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);
});
});
}
));
この戦略が呼び出されなかった理由はありますか? この状況をデバッグするにはどうすればよいですか?