Passport facebook 令牌 Oauth2 在令牌良好时抛出内部服务器错误但在令牌错误时工作正常
Passport facebook token Oauth2 throwing Internal Server Errors when the token is good but works fine when token is wrong
我在这里错过了什么?我浏览了这里的所有主题并 google 研究了一段时间:
- 在应用程序高级设置下将我机器的 IP 列入白名单。
- 仔细检查令牌,当它过期时,我可以在控制台上看到该错误。
- 双重检查客户端+秘密+应用程序中的来源
- 尝试使用 google oauth 令牌,我得到了预期的 'unauthorized'。
但是当一切都很好并且我从 Postman 或从我的前端发送一个带有良好令牌的请求时,我收到内部服务器错误,告诉我用户未在该行定义。我错过了什么?
路线代码:
app.get(
'/user',
passport.authenticate('facebook-token', { session: false }),
function(req, res) {
res.send('SUCCESS');
}
);
没有导入的所有其他代码:
app.use(cors());
app.use(express.json());
app.use(helmet());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(passport.initialize());
passport.use(
new FacebookTokenStrategy(
{
clientID: config.get('facebook.clientID'),
clientSecret: config.get('facebook.clientSecret')
},
function(accessToken, refreshToken, profile, done) {
User.findOrCreate({ facebookId: profile.id }, function(error, user) {
return done(error, user);
});
}
)
);
我正在完全按照文档中的方式导入 npm 包:
const FacebookTokenStrategy = require('passport-facebook-token');
我对这个一无所知。
app.use(cors());
app.use(express.json());
app.use(helmet());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(passport.initialize());
passport.use(
new FacebookTokenStrategy(
{
clientID: config.get('facebook.clientID'),
clientSecret: config.get('facebook.clientSecret')
},
function(accessToken, refreshToken, profile, done) {
return done(null, profile);
}
)
);
试试这个
我在这里错过了什么?我浏览了这里的所有主题并 google 研究了一段时间:
- 在应用程序高级设置下将我机器的 IP 列入白名单。
- 仔细检查令牌,当它过期时,我可以在控制台上看到该错误。
- 双重检查客户端+秘密+应用程序中的来源
- 尝试使用 google oauth 令牌,我得到了预期的 'unauthorized'。
但是当一切都很好并且我从 Postman 或从我的前端发送一个带有良好令牌的请求时,我收到内部服务器错误,告诉我用户未在该行定义。我错过了什么?
路线代码:
app.get(
'/user',
passport.authenticate('facebook-token', { session: false }),
function(req, res) {
res.send('SUCCESS');
}
);
没有导入的所有其他代码:
app.use(cors());
app.use(express.json());
app.use(helmet());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(passport.initialize());
passport.use(
new FacebookTokenStrategy(
{
clientID: config.get('facebook.clientID'),
clientSecret: config.get('facebook.clientSecret')
},
function(accessToken, refreshToken, profile, done) {
User.findOrCreate({ facebookId: profile.id }, function(error, user) {
return done(error, user);
});
}
)
);
我正在完全按照文档中的方式导入 npm 包:
const FacebookTokenStrategy = require('passport-facebook-token');
我对这个一无所知。
app.use(cors());
app.use(express.json());
app.use(helmet());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(passport.initialize());
passport.use(
new FacebookTokenStrategy(
{
clientID: config.get('facebook.clientID'),
clientSecret: config.get('facebook.clientSecret')
},
function(accessToken, refreshToken, profile, done) {
return done(null, profile);
}
)
);
试试这个