我尝试通过 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);
});
});
}
));
任何想法为什么不调用此策略?我该如何调试这种情况?