Passport js Google auth 对 JWT 有意义吗?
Posted
技术标签:
【中文标题】Passport js Google auth 对 JWT 有意义吗?【英文标题】:Does Passport js Google auth make sense with JWT? 【发布时间】:2020-09-05 20:12:47 【问题描述】:我正在尝试在我的 MERN 中实现 Passport.js Google 登录。
但是,我有这个中间件:
const jwt = require("jsonwebtoken");
const config = require("config");
module.exports = async function(req, res, next)
// Get token from header
const token = req.header("x-auth-token");
// Check if not token
if (!token)
return res.status(401).json( msg: "No token, authorization denied" );
// Verify token
try
await jwt.verify(token, config.get("jwtSecret"), (error, decoded) =>
if (error)
res.status(401).json( msg: "Token is not valid" );
else
req.user = decoded.user;
next();
);
catch (err)
console.error("something wrong with auth middleware");
res.status(500).json( msg: "Server Error" );
;
如您所见,JWT 要求令牌,因为我之前进行过 JWT 身份验证。
我应该在我的 Google 登录回调中写些什么?我应该在回调上写 JWT 吗?这有意义吗?
router.get(
"/google/redirect",
passport.authenticate("google"),
async (req, res) =>
//here
);
【问题讨论】:
【参考方案1】:我遇到了同样的问题。
我找到了建议:使用包含 JWT 的 cookie 重定向到预期页面。
链接:Facebook-passport with JWT
但是,如果我们将 jwt 令牌存储在 cookie 中,则我们无法将 api 用于移动应用程序。
【讨论】:
以上是关于Passport js Google auth 对 JWT 有意义吗?的主要内容,如果未能解决你的问题,请参考以下文章
我可以使用 passport-google 回调来验证 android/ios 用户吗?
使用 passport-auth0 进行 MEAN Stack 用户身份验证,在 Angular 中调用 Node Js passport-auth0 API
PassportJs Google Auth2 failureRedirect 不起作用