我找不到用于react和laravel身份验证的文档,但是我在论坛上看到人们正在使用护照,因此我也使用了它。目前,我具有access_token,可以使用护照的中间件来保护laravel路由,但是如何保护react-router路由呢?
目前我正在考虑使用 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)
});
答案 0 :(得分:1)
通常,此方法是通过将标准Route
组件与自定义组件包装在一起,然后将身份验证逻辑交给那里。
请参阅此帖子以作为一个很好的示例:https://tylermcginnis.com/react-router-protected-routes-authentication/