如何使用Laravel将身份验证从一个用户切换到另一个用户

Art*_*tan 6 php laravel

首先,我以用户X身份登录,我的功能如下:

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

}
Run Code Online (Sandbox Code Playgroud)

当我尝试打印出来时Auth::check()它返回TRUE,这是好的到目前为止我现在以用户Y身份登录,事情是我首先以X用户身份登录然后切换到另一个Y用户但是当我打电话给其他一些functoins时似乎记录的当前用户仍然是X,我想成为当前用户登录的Y ...这可能需要对会话做一些事情或者我不确切知道如何做这件事,如果有人有任何感激会很感激在Laravel 5中如何实现或完成任何想法.

Dec*_*ple 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();

    }
}
Run Code Online (Sandbox Code Playgroud)

路线.php

Route::get('/temp', 'TempController@index');
Run Code Online (Sandbox Code Playgroud)

如果运行此命令,您可以看到登录用户的 ID 发生变化。