首先,我以用户X的身份登录,我有一个类似于的功能
public function loginAs($userId)
{
Auth::loginUsingId($userId); // now use Y user
return response()->json(['logged' => Auth::check(), 'user' => Auth::user()]);
}
当我尝试打印出Auth::check()
时,它会返回TRUE这很好,到目前为止,我现在以用户Y的身份登录,问题是,我首先以X用户的身份登录然后切换到另一个Y用户,但当我调用其他函数时,似乎当前登录的用户仍然是X,我想成为Y,即当前记录的用户。。。这可能与会话有关,或者我不知道该怎么做,如果有人有任何样本或想法如何在Laravel 5中实现这些目标,我将不胜感激。
你能详细说明吗?我能够使用以下方式切换用户:
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', 'TempController@index');
如果运行此程序,您可以看到登录用户的id更改。
您应该使用模拟有一篇关于这个的博客文章http://blog.mauriziobonani.com/easily-impersonate-any-user-in-a-laravel-application/