我想根据用户的角色将我的用户重定向到不同的路由。我的应用中有两个安全区域,“管理员”和“仪表板”。我想检查用户是否已通过身份验证,然后重定向到预期的状态,但是如果用户有角色编辑器,则应将其重定向到仪表板,否则,如果角色管理员应将其重定向到管理员区域。Laravel 5根据角色重定向到不同的路由
我在我的登录中使用了AuthenticatesAndRegistersUsers类。我有这个我自定义控制器上:
/**
* The default redirecTo path.
*
*/
protected $redirectTo = '/dashboard';
因此,当一个用户进行身份验证,将被重定向到仪表板,但我想检查目的URL是管理员组的路由,如果用户具有管理员角色它应该被重定向到管理区域。
我使用这个中间件来重定向到登录:
public function handle($request, Closure $next)
{
if ($this->auth->guest())
{
if ($request->ajax())
{
return response('Unauthorized.', 401);
}
else
{
return redirect()->guest('auth/login');
}
}
return $next($request);
}
这应该工作,但如果我想重定向到完整路径呢?例如:用户尝试转到“admin/settings/general”,重定向到登录名,他登录后重定向到/ admin,而不是完整路径。 – Tropicalista
默认情况下,Laravel会尝试首先重定向到预期的URL。如果没有一个,它会回落到这种方法。 –
我应该在中间件上设置重定向网址? – Tropicalista