【问题标题】:Can I and how to protect my react-router routes with laravel passport我可以以及如何使用 laravel 护照保护我的 react-router 路由吗
【发布时间】:2019-12-01 23:36:48
【问题描述】:

我找不到 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)
            });

【问题讨论】:

    标签: reactjs laravel react-router laravel-passport


    【解决方案1】:

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

    查看这篇文章以获得一个很好的例子:https://tylermcginnis.com/react-router-protected-routes-authentication/

    【讨论】:

    • 这看起来很有希望,如果我能设法将它与护照的身份验证结合起来,我会将其标记为已接受。目前我正在考虑在成功验证后将护照的令牌存储到 cookie 中,然后重定向到 PrivateRouter 并使用令牌使 axios 获取请求以检查用户,然后对应于 axios 响应我将显示管理仪表板或重定向到登录页面如果不成功。
    猜你喜欢
    • 2020-10-26
    • 2021-05-03
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多