reactjs - 我可以以及如何使用 laravel 护照保护我的 react-router 路由吗
问题描述
我找不到 react 和 laravel 身份验证的文档,但我在论坛上看到人们正在使用护照,所以我也使用了它。目前我有access_token,我可以用passport的中间件保护laravel路由,但是如何保护react-router路由?
目前我正在考虑使用 'universal-cookie' 中的 Cookie 将令牌作为 cookie 传递给管理仪表板组件,然后从那里运行 axios 请求以检查令牌是否有效。如果授予访问权限,我可以显示仪表板,以其他方式显示“拒绝访问”元素。但这不是路由保护,我想知道如何正确执行
var bodyFormData = new FormData;
bodyFormData.append('name', this.state.name);
bodyFormData.append('password', this.state.password);
axios({
method: 'post',
url: '/api/login',
data: bodyFormData,
config: { headers: {'Content-Type': 'multipart/form-data' }}
})
.then(function (response) {
var cookies = new Cookies();
cookies.set('access_token', response.data.access_token, { path: '/' });
})
.catch(function (response) {
alert(response)
});
解决方案
通常,完成此操作的方法是Route
使用自定义组件包装标准组件,并在那里处理您的身份验证逻辑。
请参阅这篇文章以获取一个很好的示例:https ://tylermcginnis.com/react-router-protected-routes-authentication/
推荐阅读
- kotlin - Jetpack Compose @Composable 函数编译成什么?
- java - Java 创建带有参数和返回值的函数的 ArrayList
- java - Java/Spring 错误:“reactor.netty.http.server.HttpServer”中的“create()”不能应用于“(java.lang.String, int)”
- javascript - 有没有办法在 React.js 中使用这样的 JavaScript 文件?
- android - 如何使用来自服务器 NodeJS 的自定义消息而不是 Kotlin 的改造?Retrofit 用 OK 和 Conflict 改变消息
- node.js - 处理快递中的端口已在使用错误
- python - 导入熊猫在 Jupyter Notebook 中不起作用
- java - Kafka ProducerConfig 日志级别
- scala - 执行 dropDuplicates() 后,计数时得到不同的计数
- android - 在我的动画列表中颤动改变图标 onTap