是否应该在每次页面更改时验证令牌?

Posted

技术标签:

【中文标题】是否应该在每次页面更改时验证令牌?【英文标题】:Should a token be validated on every page change? 【发布时间】:2021-09-20 02:36:54 【问题描述】:

我有一个小问题,我在一个基于 react-native 的应用程序上工作,我不知道是否应该在每次更改页面/屏幕时向服务器发送一个请求以验证令牌(例如“提要” ' -> 'profile' ) 或仅当我向服务器发送请求时

【问题讨论】:

【参考方案1】:

您的 UI 只是 UI,您对服务器的调用以提取数据应该每次都经过验证。

您的 UI 不包含任何数据,因此从技术上讲,他们可以看到没有数据的情况。

为了获得更好的用户体验,用户不应看到他们无权访问的网址/按钮/链接。但从安全角度来看,唯一的威胁是您的服务器端调用未检查身份验证或授权。

【讨论】:

【参考方案2】:

您有一个获取访问令牌的登录请求,然后您将其保存在客户端(cookie 或其他存储)。

在后端,您有两种请求类型的 API:

    受保护(例如 GET /user/:id) - 您应该发送访问令牌(后端检查它) 打开(例如 GET /books)

在以最佳方式更改屏幕后的客户端上,您应该有一个受保护的路由组件,它会检查内存中是否存在令牌(或者在 401 状态之后,您应该从内存中删除令牌)。您不必为此目的发送请求。

【讨论】:

以上是关于是否应该在每次页面更改时验证令牌?的主要内容,如果未能解决你的问题,请参考以下文章

每个请求的 JWT 令牌验证?

我们是不是应该在很大程度上基于本地 jwt 令牌到期日期来验证用户

在每个API调用之前验证JWT令牌

SSO 是开销吗?

关于 azure devops 个人访问令牌认证

是否应该在浏览器中验证 OpenID 连接 ID 令牌?