我想用passport.js编写一个无状态节点api进行身份验证。
我想创建一个 oauth google api 端点,它返回成功时的 api 密钥和成功时的其他详细信息。
谷歌 API 路由
router.get('/',passport.authenticate('google', { scope : ['profile', 'email']}));
router.get('/callback', function(req, res, next) {
passport.authenticate('google', { session: false, failureRedirect: '/#/login'}, function(err, user, info) {
console.log('------------------in google callback-----------------');
if (err) res.status(500).json({status_code: 500, message: "Authentication error", data : err});
if (!user) {
res.status(404).json({status_code: 404, message : "User not found/created"});
}
var token = 'JWT KEY TO USE AS API TOKEN';
res.status(200).json({status_code: 200, message : "Success", data : {token : token, user:user }});
})(req, res, next);
});
当我在浏览器中打开我的 api 端点并成功进行身份验证时,json 响应只是打印在屏幕上,我无法在变量中捕获相同的响应。通过 ajax 调用相同的 api 端点不起作用。
如何创建一个无需会话即可工作并返回令牌的谷歌登录 API 端点?
我如何通过 ajax 运行它?有没有办法调用这个 api 端点并在成功回调中接收响应?