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

Passport JS 和 Auth0 有啥关系?

PassportJs Google Auth2 failureRedirect 不起作用

Hasura Authentication Passport.js Auth Webhook 不起作用

Passport.js 在 nginx 上表达 google oauth 502 Bad Gateway