在页面加载时,我的应用会检查我是否有该用户在本地存储中,如果有,我将状态设置为已验证。这样,我不必每次页面加载时都进行api调用。
但是,我的用户现在拥有一个user.isPremium属性,该属性检查用户可以访问的应用程序的哪些功能。将高级身份也存储在本地存储中是一种好习惯吗?如果用户的高级身份发生变化,这可能会成为问题。
或者在每次页面加载时进行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
则无法请求该功能。