我可以以及如何使用 laravel 护照保护我的 react-router 路由
Can I and how to protect my react-router routes with laravel passport
我找不到有关反应和 laravel 身份验证的文档,但我在论坛上看到人们正在使用护照,所以我也使用了它。目前我有 access_token,我可以用 passport 的中间件保护 laravel 路由,但是我如何保护 react-router 路由?
目前我正在考虑使用
来自 'universal-cookie' 的 cookie 将令牌作为 cookie 传递给管理仪表板组件,然后从那里向 运行 axios 请求以检查令牌是否有效。如果授予访问权限,我可以显示仪表板,以其他方式显示 "access denied" 元素。但这不是路由保护,我想知道如何正确地做到这一点
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
组件,然后将您的身份验证逻辑传递给那里。
请参阅此 post 以获得一个很好的示例:https://tylermcginnis.com/react-router-protected-routes-authentication/
我找不到有关反应和 laravel 身份验证的文档,但我在论坛上看到人们正在使用护照,所以我也使用了它。目前我有 access_token,我可以用 passport 的中间件保护 laravel 路由,但是我如何保护 react-router 路由?
目前我正在考虑使用 来自 'universal-cookie' 的 cookie 将令牌作为 cookie 传递给管理仪表板组件,然后从那里向 运行 axios 请求以检查令牌是否有效。如果授予访问权限,我可以显示仪表板,以其他方式显示 "access denied" 元素。但这不是路由保护,我想知道如何正确地做到这一点
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
组件,然后将您的身份验证逻辑传递给那里。
请参阅此 post 以获得一个很好的示例:https://tylermcginnis.com/react-router-protected-routes-authentication/