【发布时间】:2020-06-22 04:03:43
【问题描述】:
我对 React 和前端/后端开发的分离非常陌生(以前我的应用程序都耦合在一起,例如 ASP.NET 网站)。最近我正在构建一个纯 React SPA 作为我的前端,.NET CORE 作为我的后端,ADFS 4.0 作为我的内网身份验证服务器,我的用户角色安全地存储在 OracleDB 中。
我目前的设计如下:
1) React 应用程序将使用用户声明从 ADFS 获取访问令牌(使用 react-adal)
2) React 应用程序将使用 Bearer 令牌调用我的核心后端;后端将处理 JWT 并检查 ADFS
3) 验证后,将从数据库中检索用户角色
4) 角色将作为 JWT 或用户对象返回给 React 应用程序
问题:
1)我是否应该将用户角色存储在我从核心后端自己制作(并使用我自己的证书签名)的全新 JWT 中(我主要需要路由角色,以便管理员可以在普通用户时访问管理员功能不能)。我使用 Jwt Bearer 属性保护我的核心端点,因此我认为我将制作我自己的 Jwt 令牌供我的 API 后端使用。
2) 假设我使用 Jwt 令牌来存储我的用户角色以供我的 React 应用程序使用,我是否应该将 JWT 存储在 sessionStorage 中,以便在用户关闭网络时令牌将与会话一起被删除浏览器?鉴于浏览器关闭时会话将被销毁,我可以将 JWT exp 时间设置为更长的时间,假设在一天结束时到期?
【问题讨论】: