如何使用JWT有效负载存储会话用户数据?

时间:2019-04-05 14:59:16

标签: angular symfony session jwt httponly

我正在构建一个Web应用程序,其中使用Symfony编写的API BACK-END端和使用Angular 7编写的FRONT-END端。我的问题是从后端检索用户数据并将其存储在前端的会话中端。我使用JWT在前端和后端之间进行身份验证。

我想使用JWT有效负载来存储来自后端的用户数据。我已经知道将JWT令牌存储在localStorage中并不安全,并且必须使用 httpOnly secure 选项将其存储在cookie中。但是,如果我使用此系统,则我的前端应用程序将无法读取JWT有效负载数据(无法读取Javascript中的httpOnly cookie)。

我的问题是:如何使用JWT通过httpOnly / secure选项进行身份验证,以及如何将有效负载数据用于用户会话数据?我是否必须仅使用JWT进行身份验证,然后再次调用后端API来检索用户会话数据?

谢谢!

1 个答案:

答案 0 :(得分:0)

要从令牌中获取您的前端应用程序的用户详细信息,请按照以下方式使用 在

function parseJwt (token) {
        var base64Url = token.split('.')[1];
        var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
        return JSON.parse(window.atob(base64));
    };