angular - 如何使用 JWT 有效负载存储会话用户数据?
问题描述
我正在构建一个 Web 应用程序,其 API 后端用 Symfony 编写,前端用 Angular 7 编写。我的问题是从后端检索用户数据并将其存储在前端的会话中. 我使用 JWT 在前端和后端之间进行身份验证。
我想使用 JWT 有效负载从后端存储用户数据。我已经读到将 JWT 令牌存储在 localStorage 中是不安全的,我必须使用httpOnly和安全选项将其存储在 cookie 中。但是如果我使用这个系统,我的 Angular 前端应用程序将无法读取 JWT 有效负载数据(无法读取 Javascript 中的 httpOnly cookie)。
我的问题是:如何通过 httpOnly/secure 选项使用 JWT 进行身份验证并将有效负载数据用于用户会话数据?我是否必须仅使用 JWT 进行身份验证并再次调用后端 API 来检索用户会话数据?
谢谢 !
解决方案
要从令牌中获取您的用户详细信息,以便在 javascript 中使用这样的前端应用程序
function parseJwt (token) {
var base64Url = token.split('.')[1];
var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
return JSON.parse(window.atob(base64));
};
推荐阅读
- mysql - 尝试从 start_date + duration 生成 end_date 时 MySQL 触发错误
- wordpress - 过滤帖子内容(Wordpress)
- condor - HTCondor 根据 Idle 更改 NUM_CPUS?
- razor - 为什么 Authorize 注解会创建 404 错误而不是 401 错误?
- python - 如何访问列表的所有元素(由字典组成)?
- maven - Intellij Run 和 Maven 应用执行之间有什么区别
- react-native - 如何将 Redux 存储中的数据传递给 tabBarComponent(3.x)?
- javascript - Js - 在并行函数中使用数组变量
- powershell - Powershell检查文件是否存在并将其替换为新副本
- sql-server - 如何在 PowerBI 中比较两个日期之间的数据?