Laravel 5.3 Login redirecionado para páginas diferentes para múltiplos usuários
Eu tenho o Laravel 5.3 com três tipos diferentes de usuários. Quero que eles sejam redirecionados para diferentes páginas do painel após o login. Por exemplo:
usuário -> login -> painel do usuário
admin -> login -> painel de administração
Eu criei um middleware chamadoCheckRole
:
public function handle($request, Closure $next)
{
if($request->user() === null) {
return response("Insufficient Permissions" , 401);
}
$actions = $request->route()->getAction();
$roles = isset($actions['roles']) ? $actions['roles'] : null;
if($request->user()->hasAnyRole($roles) || !$roles) {
return $next($request);
}
return response("Insufficient Permissions" , 401);
}
Rotas
Route::group(['middleware' => ['auth','roles'], 'roles' => 'Admin'], function () {
// Routes here
}
As funções estão funcionando perfeitamente.
AgoraredirectTo= '';
noLoginContoller
aponta para apenas uma visualização. Verifiquei a documentação e acredito que isso tenha algo a ver com guardas que não têm explicação sobre como configurá-la.
Também vi multiauth, mas não acho prudente criar tabelas diferentes para usuários diferentes e, portanto, procurar uma resposta alternativa.
Qualquer sugestão será apreciada.
Minhas mesas são como:
Table users
id | name | email
---------
1 | John | [email protected]
2 | Michael | [email protected]
Table roles
id | name
---------
1 | Admin
2 | PrivilegedMember
3 | Subscriber
Table user_role
id | user_id | role_id
----------------------
1 | 1 | 1
2 | 2 | 2
Isso pode ser uma duplicata da pergunta abaixo, mas a resposta fornecida sai sem explicar vários redirecionamentos.