可以在Laravel中编码并在JavaScript中解码的JWT

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

我正在尝试生成一个JWT令牌,我将在我的Laravel项目中执行,就像我找到的这个解决方案:https://github.com/luciferous/jwt/blob/master/JWT.php

所以我有2个问题,我试图解决这个问题:

在我的Next.js React项目中,我会在一个cookie中设置JWT来记住它。是对的吗?然后可以将每个请求传递给服务器以验证用户。

我怎么能在Next.js中解码呢?所以我可以像用户名一样从中获取一些基本信息。

javascript php laravel reactjs next.js
1个回答
3
投票

对于Javascript中的JWT解码,您可以使用Auth0的JWT解码库(https://github.com/auth0/jwt-decode),这使得解码(无验证)编码的JWT令牌变得简单。

您只需从set 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令牌。

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