2015-12-15 10 views
6

In primo luogo, il login come utente X, e ho una funzione come:Come passare l'autenticazione da un utente a un altro utilizzando laravel

public function loginAs($userId) 
{ 
    Auth::loginUsingId($userId); // now use Y user 
    return response()->json(['logged' => Auth::check(), 'user' => Auth::user()]); 

} 

e quando provo a stampare Auth::check() esso restituisce TRUE che va bene finora sono loggato come utente Y, il fatto è che faccio il primo login come utente X e poi passa a un altro utente Y, ma quando richiamo alcuni altri functoin sembra che l'utente corrente loggato sia ancora X, e voglio essere Y l'utente corrente che ha effettuato l'accesso ... Potrebbe dover fare qualcosa con la sessione o non so esattamente come fare questa cosa, sarei grato se qualcuno avesse qualche campione o avesse qualche idea su come ottenere tale thi ng in Laravel 5.

+0

Sta dicendo che dopo il login con l'utente Y, 'Auth :: utente()' è ancora di riportare l'utente X? Qual è il risultato di 'dump (Auth :: loginUsingId ($ userId));'? – Bogdan

+1

Hai provato 'Auth :: logout()' prima di 'Auth :: loginUsingId ($ userId)'? – user2094178

+0

Prova questo http://laravel-tricks.com/tricks/temporary-user-switching –

risposta

4

Puoi elaborare? Sono stato in grado di cambiare gli utenti utilizzando il seguente:

use Auth; 

class TempController extends Controller 
{ 

    public function index() { 
     $user = User::find(1); 
     Auth::login($user); 
     var_dump(Auth::user()->id); // returns 1 
     Auth::logout(); 

     var_dump(Auth::user()); // returns null 

     $user = User::find(2); 
     Auth::login($user); 
     var_dump(Auth::user()->id); // returns 2 
     Auth::logout(); 

    } 
} 

routes.php

Route::get('/temp', '[email protected]'); 

Se si esegue questo, si può vedere la loggato modifiche id dell'utente.

+0

Buona soluzione. Puoi anche impostare un parametro in modo da poter scegliere quale account cambiare: 'Route :: get ('debug/hopacc/{id}', 'ProfileController @ debughop') -> name ('debug.hop') ; ' ' funzione pubblica debughop ($ id) { $ user = Utente :: find ($ id); Auth :: login ($ utente); reindirizzamento di ritorno ('cliente/account/modifica') -> con ('utente'); } edit: assicurati di controllare se l'utente esiste prima :) –

Problemi correlati