首页 > 解决方案 > 使用 Laratrust 登录后用户明智的重定向

问题描述

我是 Laravel 的新手。我正在尝试 laratrust 进行角色认证。谁能告诉我,如何在登录后根据用户的角色重定向用户。IE:管理员用户重定向到:/admin

员工用户重定向到:/employee

标签: phplaravel

解决方案


无需覆盖整个登录逻辑,如果您深入了解框架,您会看到 Laravel 使用以下内容来确定登录后的重定向路径。

    /**
     * Get the post register / login redirect path.
     *
     * @return string
     */
    public function redirectPath()
    {
        if (method_exists($this, 'redirectTo')) {
            return $this->redirectTo();
        }
        return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
    }

因此,您需要做的就是redirectTo()向您添加一个方法app\Http\Controllers\Auth\LoginController.php并将您的自定义逻辑放入该方法中,您应该能够使用该方法$this->guard()->user()获取经过身份验证的用户并生成您需要实现的自定义逻辑。

    /**
     * Get the post register / login redirect path.
     *
     * @return string
     */
    public function redirectTo()
    {
        if ($this->guard()->user()->hasRole('admin')) {
            return '/admin';
        }

        return '/employee';
    }


推荐阅读