- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 React 应用程序中,我当前在登录时将其作为 jwt token 保存到 localstorage 用户中。
在页面加载时,我的应用程序检查本地存储中是否有该用户,如果有,我将状态设置为进行身份验证。这样,我就不必每次加载页面时都进行 api 调用。
但是,现在我的用户有一个 user.isPremium 属性,用于检查用户可以访问应用程序的哪些功能。在本地存储中也存储高级状态是一种好的做法吗?如果用户的高级状态发生变化,这可能会成为一个问题。
或者在页面加载时进行 api 调用来获取用户和高级状态会更好吗?
最佳答案
我想说,如果您希望您的应用程序更加灵活,请使您的 React Routes 灵活地适应任何“已登录请求”请求,并让后端“API 调用”决定页面或功能是否可由用户。
这样,如果您从前端 session 以外的任何地方将用户更改为 isPremium=False
,对高级功能的 API 调用将会失败,并显示 HTTP 状态代码:403
code>,您的前端决定是注销用户还是保留用户并警告不允许的更改。
用户向 /PremiumFeatureList
发出请求,后端将响应 HTTP Status Code: 200
,用户 isPremium=True
并已请求该功能的能力。
例如将 isPremium
更改为 False
:
逾期订阅将导致isPremium=False
,更改将自动应用到后端
用户向/PremiumFeatureList
发出请求,后端将响应HTTP状态代码:403
,用户isPremium=False
并且没有能力请求该功能。
关于javascript - 如何在 React 中保持高级用户状态同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59688847/
我是一名优秀的程序员,十分优秀!