如何在类型的配置文件依赖项中重定向用户?
How to redirect user in profile dependency of type?
我有一些类型的用户。如何将用户重定向到帐户类型的配置文件依赖项?
授权成功后我需要检查Auth::user()->type
并重定向到指定的控制器url。
我尝试为此使用中间件:
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
if(Auth::user()->type == "1"){
return redirect('/center');
}
if(Auth::user()->type == "2"){
return redirect('/doctor');
}
}
return $next($request);
}
}
但是这个中间件在哪里调用一次呢?
您可以通过这样做为特定路由定义自定义中间件:
Route::get('admin/profile', function () {
//
})->middleware('custom');
但是,在这种情况下,由于您只需要在用户登录后重定向用户,我建议将逻辑放在登录方法的末尾:
public function login(Request $request)
{
// handle authentication and return $user object if authenticated
if ($user->type == "1") {
return redirect('/center');
} else if ($user->type == "2") {
return redirect('/doctor');
}
// set default redirect if necessary
}
我有一些类型的用户。如何将用户重定向到帐户类型的配置文件依赖项?
授权成功后我需要检查Auth::user()->type
并重定向到指定的控制器url。
我尝试为此使用中间件:
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
if(Auth::user()->type == "1"){
return redirect('/center');
}
if(Auth::user()->type == "2"){
return redirect('/doctor');
}
}
return $next($request);
}
}
但是这个中间件在哪里调用一次呢?
您可以通过这样做为特定路由定义自定义中间件:
Route::get('admin/profile', function () {
//
})->middleware('custom');
但是,在这种情况下,由于您只需要在用户登录后重定向用户,我建议将逻辑放在登录方法的末尾:
public function login(Request $request)
{
// handle authentication and return $user object if authenticated
if ($user->type == "1") {
return redirect('/center');
} else if ($user->type == "2") {
return redirect('/doctor');
}
// set default redirect if necessary
}