laravel - 在 Laravel Auth 中自定义重定向
问题描述
我想自定义 Laravel Auth。我想区分管理员和用户。在默认用户表中,我添加了具有两个选项的列角色:管理员和用户。根据手册,我正在定义redirectTo
方法。
class LoginController extends Controller
{
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*/
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
protected function redirectTo()
{
if (Auth::user()->role == 'admin') {
return 'admin/home';
} else {
return '/main';
}
}
protected function show_admin_homepage()
{
return view('auth.admin_h');
}
protected function show_user_homepage()
{
return view('auth.user_h');
}
}
路线
Route::get('main', 'Auth\LoginController@show_user_homepage')->name('show_user_homepage');
Route::get('admin/home', 'Auth\LoginController@show_admin_homepage')->name('show_admin_homepage');
问题是当我以用户或管理员身份登录时,我总是重定向到默认的 laravel 主页视图。我做错了什么?
解决方案
默认登录控制器使用AuthenticatesUsers特征。在 trait 中,在登录控制器中定义了一个名为authenticated的受保护方法。
下面是认证方法的实现
protected function authenticated($request, $user)
{
if($user->role == 'admin')
{
return redirect('/admin/dashboard');
}
else if($user->role == 'user')
{
return redirect('/dashboard');
}
}
推荐阅读
- javascript - 反应传单标记坏了
- amazon-web-services - 同一个安全组中默认打开哪些端口与其中的实例进行通信?
- python - 远程:-----> 应用程序与 buildpack 不兼容:托管不和谐机器人时出现 heroku 错误
- flutter - 使用带有 List 的 add 函数与创建新方法在列表中添加数据
- python - 如何用 python 操作这个国际象棋符号?
- pypdf2 - Pdf Reader 编辑器不会将对象添加到主根对象
- javascript - 收集的元数据包含将在运行时报告的错误:Reference to a non-exported function
- rust-polars - 使用 Rust Polars,有没有一种很好的方法来替换像 fill_null 这样的系列中的指定值?
- jquery - E4000 - [DevExpress.data]:错误:错误。dx.all.debug.js:28351(请看截图)
- python - 尝试加载泡菜文件时出现错误