javascript - 如何检查 localStorage 中的令牌是否有效?
问题描述
我正在将 ReactJS 前端与 PHP 后端连接起来。登录时,我将 JWT 令牌保存在 localStorage 中,我有一些静态反应页面,我只想在用户登录时显示它们我已将它们包装在受保护的路由中。我知道当我们从后端 api 提取数据时,我们可以授权用户,但在这种情况下,我如何授权用户,如果用户添加了错误的令牌,静态页面仍然可以访问。下面是我的受保护路线的代码
<Route
{...rest}
component={(props) => {
const token = window.localStorage.getItem("token");
if (token) {
return <Component {...props} />;
} else {
return <Redirect to={"/"} />;
}
}}
/>
解决方案
您需要执行以下代码来保护页面
- 在 redux 或 localstorage 中添加令牌
- 刷新时,调用 api 并将令牌发送到将验证您的令牌的服务器
- 如果验证,那么您可以显示受保护的页面,否则重定向到登录
- 在服务器端制作将检查请求是否具有令牌及其有效的中间件
- 如果无效,则发送未经授权的响应,如果您正在使用 axios,您可以使用 axios 拦截该响应。或者在 reactjs 中创建响应的中间件
我认为这可以解决您验证用户的问题
推荐阅读
- php - 如何使用来自 json 的值创建一个数组
- python - PYTHON:'for'循环结束时出现奇怪的错误
- android-studio - 如何从 android studio 中的 MainActivity.java 访问 XML GUI 对象?
- python - 通过文件返回字典输出(python 3)进行交互。调试我的 UDF
- arrays - 通过编辑 char 数组替换 C 字符串与更改
- php - Tailwind 自定义清除正则表达式?
- .net-core - 使用 WSL2 进行 .NET Core 和 C++ 混合模式调试
- r - r - 如果它们在列中共享相同的值,则将一个表附加到另一个表
- web-audio-api - Audioworklets 和音高
- javascript - 防止ant design modal在点击关闭模态外