Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Laravel: criando uma função 'logar como'
<?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