React-将用户加载到[已关闭]状态的最佳做法

问题描述 投票:0回答:1
在我的react应用中,我当前登录时作为jwt令牌保存到localstorage用户。

在页面加载时,我的应用会检查我是否有该用户在本地存储中,如果有,我将状态设置为已验证。这样,我不必每次页面加载时都进行api调用。

但是,我的用户现在拥有一个user.isPremium属性,该属性检查用户可以访问的应用程序的哪些功能。将高级身份也存储在本地存储中是一种好习惯吗?如果用户的高级身份发生变化,这可能会成为问题。

或者在每次页面加载时进行api调用以获取用户和高级状态会更好吗?

javascript reactjs authentication local-storage
1个回答
2
投票
我想说的是,如果您希望您的应用程序更加灵活,使您的React Routes灵活适应任何“登录请求”请求,并让后端“ API调用”决定用户是否可以访问该页面或功能。

这样,如果您从任何地方而不是前端会话将用户更改为isPremium=False,则对高级功能的API调用将失败,并显示HTTP Status Code: 403,这是您注销用户或保留用户的前端决定用户,并警告不允许的更改。

场景0

用户向/PremiumFeatureList发出请求,后端将以HTTP Status Code: 200响应,用户isPremium=True并具有请求功能的能力。

方案1

例如将isPremium更改为False

逾期订阅将产生isPremium=False,更改将自动应用于后端

方案2

用户向/PremiumFeatureList发出请求,后端将以HTTP Status Code: 403进行响应,而用户isPremium=False则无法请求该功能。

© www.soinside.com 2019 - 2024. All rights reserved.