我有一个关于使用Facebook OAuth令牌验证用户身份的问题。 Passport确实检查用户是否存在,它向数据库添加了一个条目,甚至生成了令牌,但是当我尝试使用邮递员在标头(授权:令牌)中使用生成的令牌访问受保护的路由时,它会一直返回未经授权的401
代码如下:
passport-config.js
max
login.js:
name
users.js:
passport.use(
'facebookToken',
new FacebookTokenStrategy(
{
clientID: passportConfig.auth.facebook.clientID,
clientSecret: passportConfig.auth.facebook.clientSecret
},
async (accessToken, refreshToken, profile, done) => {
try {
console.log('profile', profile);
console.log('accessToken', accessToken);
console.log('refreshToken', refreshToken);
let [facebookID, username, email] = [
profile.id,
profile.username || profile.displayName,
profile.emails[0] ? profile.emails[0].value : null
];
const existingUser = await models.user.findOne({
where: {
facebookID: facebookID
}
});
console.log('existingUser', existingUser);
if (existingUser) {
return done(null, existingUser);
}
const newUser = {
facebookID: facebookID,
username: username,
email: email
};
console.log('newUser', newUser);
await models.user.create(newUser);
done(null, newUser);
} catch (error) {
done(error, false, error.message);
}
}
)
);