php - 使用 Laratrust 登录后用户明智的重定向
问题描述
我是 Laravel 的新手。我正在尝试 laratrust 进行角色认证。谁能告诉我,如何在登录后根据用户的角色重定向用户。IE:管理员用户重定向到:/admin
员工用户重定向到:/employee
解决方案
无需覆盖整个登录逻辑,如果您深入了解框架,您会看到 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';
}
推荐阅读
- c - 为什么不能在编译时确定堆栈的大小?
- java - 如何使用 Spring Framework 将 Java 控制台应用程序转换为全栈 Web 应用程序?
- android - 反应本机按钮按下不适用于android
- sql - 存储过程输出值未更新
- c - 使用 libaio 在 C 中读取管道
- php - AND/OR 比较从 null、true 或 false 开始......?
- r - 更改生存曲线的 facet_wrap 图形标题
- javascript - Rails 将变量传递给 jBuilder
- php - 有没有办法绕过 laravel 唯一验证字符串长度检查?
- javascript - 响应返回未定义的反应js axios