我正在尝试生成一个JWT令牌,我将在我的Laravel项目中执行,就像我找到的这个解决方案:https://github.com/luciferous/jwt/blob/master/JWT.php
所以我有2个问题,我试图解决这个问题:
在我的Next.js React项目中,我会在一个cookie中设置JWT来记住它。是对的吗?然后可以将每个请求传递给服务器以验证用户。
我怎么能在Next.js中解码呢?所以我可以像用户名一样从中获取一些基本信息。
答案 0 :(得分:3)
对于Javascript中的JWT解码,您可以使用Auth0的JWT解码库(https://github.com/auth0/jwt-decode),这使得解码(无验证)编码的JWT令牌变得简单。
您只需从设置cookie中读取JWT令牌并对其进行解码:
var token = 'eyJ0eXAiO.../// jwt token';
var decoded = jwt_decode(token);
您还可以使用一个简单的函数对其进行解码,如下所示:
function parseJwt (token) {
var base64Url = token.split('.')[1];
var base64 = base64Url.replace('-', '+').replace('_', '/');
return JSON.parse(window.atob(base64));
};
在React应用程序中直接解码JWT令牌没有问题,只需确保始终在服务器端验证编码令牌,以便用户不能将其作为修改后的JWT令牌。