我正在构建一个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来检索用户会话数据?
谢谢!
答案 0 :(得分:0)
要从令牌中获取您的前端应用程序的用户详细信息,请按照以下方式使用 在
中function parseJwt (token) {
var base64Url = token.split('.')[1];
var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
return JSON.parse(window.atob(base64));
};