如何通过 google 从 next js 前端到 Node js 后端对用户进行身份验证

问题描述 投票:0回答:1

我已经在我的 Node JS 后端使用 Passport JS 设置了 Google 身份验证。我还将它们存储在我的 MySQL 数据库中。后端已完成并在端口 3001 上运行。 现在我想创建一个登录页面并让人们在我的下一个 js 前端进行身份验证。但我不知道该怎么做。我应该从前端调用 Google 身份验证回调 URL 吗? 我已经搜索了一个小时但没有找到任何东西。我看到大家都在使用nextAuth。但我想使用node js作为后端,而不是next js。

node.js authentication next.js passport.js
1个回答
0
投票

完成身份验证后,您必须将其保存为 cookie 中的 JWT:

const token = jwt.sign({ foo: 'bar' }, SECRET_KEY);

在客户端中,您可以使用此方法在不访问

SECRET_KEY
的情况下解码JWT(出于安全原因,我们不通过
SECRET_KEY
):

const decoded = jwt.decode(token)

但是如果你想用

SECRET_KEY
解码JWT,你必须将JWT传递到后端并解码它,如果解码为true,则将用户重定向到其他页面,如
dashboard
,如果出错,则删除JWT cookie并重定向用户到
login
页。

jwt.verify(token, SECRET_KEY, function(err, decoded) {
    if(err){
        //delete JWT cookie
        //redirect to login page
    }

    if(decoded){
        //make JWT token or redirect user to other page
    }
});

您可以在此处阅读有关此库的更多信息:https://www.npmjs.com/package/jsonwebtoken

© www.soinside.com 2019 - 2024. All rights reserved.