首页 > 解决方案 > 我可以以及如何使用 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)
            });

标签: reactjslaravelreact-routerlaravel-passport

解决方案


通常,完成此操作的方法是Route使用自定义组件包装标准组件,并在那里处理您的身份验证逻辑。

请参阅这篇文章以获取一个很好的示例:https ://tylermcginnis.com/react-router-protected-routes-authentication/


推荐阅读