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

Angular 如何使用JWT负载存储会话用户数据?,angular,symfony,session,jwt,httponly,Angular,Symfony,Session,Jwt,Httponly,我正在构建一个web应用程序,其API后端用Symfony编写,前端用angular7编写。我的问题是从后端检索用户数据并将其存储在前端的会话中。我使用JWT在前端和后端之间进行身份验证 我想使用JWT负载来存储来自后端的用户数据。我已经读到在localStorage中存储JWT令牌是不安全的,我必须使用httpOnly和安全选项将其存储在Cookie中。但是如果我使用这个系统,我的angular前端应用程序将无法读取JWT负载数据(不可能读取Javascript中的httpOnly cooki

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

我想使用JWT负载来存储来自后端的用户数据。我已经读到在localStorage中存储JWT令牌是不安全的,我必须使用httpOnly和安全选项将其存储在Cookie中。但是如果我使用这个系统,我的angular前端应用程序将无法读取JWT负载数据(不可能读取Javascript中的httpOnly cookies)

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


谢谢大家!

要从令牌获取用户详细信息,以便前端应用程序使用,请如下所示 在javascript中

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

顺便说一句,您不需要使用会话,因为您使用的是JWTA存储在HttpOnly cookie中的JWT(为了防止XSS攻击),Javascript不可读。。。所以我不能用它来阅读JWT在客户端的声明。。。