Last active
May 16, 2019 13:47
-
-
Save LuizMoratelli/e3bf318fff257201a3435bcb6e0ff332 to your computer and use it in GitHub Desktop.
Laravel: criando uma função 'logar como'
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* 1. Para efetuar o login se passando por outro usuário, basta que você tenha o `$id` ou uma instância do Model User: | |
* Será necessário incluir a dependência do `Auth`, usando `use Illuminate\Support\Facades\Auth;` | |
*/ | |
use Illuminate\Support\Facades\Auth; | |
// Logando como usuário pelo id | |
Auth::loginUsingId($id); | |
// ou logando como usuário pela instância de User | |
$usuario = User::find($id); | |
Auth::login($usuario); | |
/** | |
* 2. Caso você deseje retornar ao usuário original posteriormente, será necessário armazenar algum informação de buscaem sessão, como por exemplo, o id dele: | |
* Na função que retorna ao usuário original, eu recomendo que você limpe a sessão criada. | |
*/ | |
// Salvando id em sessão | |
$usuarioAtual = auth()->user(); | |
session()->put('usuario_original', $usuarioAtual->id); | |
// Limpando o id da sessão, após realizar login | |
session()->forget('usuario_original'); | |
/** | |
* 3. Nas suas views você pode usar uma simples condicional com a sessão: | |
*/ | |
@if (session('usuario_original')) | |
// Faz/Mostra alguma coisa | |
@endif | |
/** | |
* Referências: | |
* - https://laravel.com/docs/5.8/authentication | |
* - https://laravel.com/docs/5.8/session | |
* - https://stackoverflow.com/questions/45705087/laravel-login-as-another-user | |
*/ | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment