无状态应用 - 如何知道用户是否经过身份验证以显示页面



假设我有一个React应用程序,带有Spring REST API,并且我使用基于令牌的身份验证。现在,假设我也使用 React-Router 进行导航。

我想保护应用程序的某些页面,使其仅对登录用户可见。

我打算做的是在每次页面更改中询问我的服务器(执行获取请求(如果用户经过身份验证,然后提供适当的数据。如果没有,请重定向到登录

我相信这是确保我的用户经过身份验证以查看页面的正确方法,但是还有更好的方法吗?恐怕对每一页的调用都很沉重。其他无状态 rest API 如何处理这种情况?

提前感谢!

我已经用Laravel后端和VueJS前端完成了这个实现。与 React 略有不同,但我认为有些东西是相同的。

我使用了JWT(JSON Web Token(,并创建了一个登录API。 如果用户通过登录 API 登录,请向用户颁发令牌和响应。然后,前端框架应将令牌保存在 Cookie 或本地存储中。

当应用想要从 API 检索数据时,每次都将令牌追加到请求标头。您可以从后端中间件解密令牌,也可以不是登录用户。

好的,这就是JWT和后端的工作方式。回到您的问题,只要令牌未过期,您就可以轻松存储令牌并将其重新用作用户标识。

前端页面打开后,向服务器 API 发送请求,检索用户的全名、帐户名称或页面呈现所需的任何内容至少一次。(相反,如果您已经将其存储在本地存储中,只需显示它。

由于令牌存储,您将知道用户是否登录。以便您能够从前端框架路由处理一些私有的、仅限成员的页面。但只是为了改善用户体验。在检索和返回敏感数据之前,请检查令牌有效性和用户标识。

将令牌存储在本地存储或会话存储中,这样您只需对授权服务器进行一次初始调用。 https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API

相关内容

最新更新