Laravel 9 以另一个用户身份登录

chi*_*ptu 3 php inertiajs laravel laravel-fortify

我希望能够从我的管理员帐户以其他用户身份登录。

我正在使用 Laravel fortify 使用 Inertia Js 制作 SPA 应用程序来处理会话和登录。

在 laravel 8 中,我能够以另一个用户身份登录,但在 laravel 9 中,登录方法使我注销。

$user = User::find(2);
Auth::guard('web')->login($user); // or // Auth::login($user); 
Run Code Online (Sandbox Code Playgroud)

我检查了 csrf 令牌,尝试排除我的 uri,但没有任何变化。

如果您有任何想法,请不要犹豫,谢谢!

小智 6

有时,在 Laravel 中以编程方式使用登录功能需要在以其他用户身份登录之前刷新会话。

//IN CASE YOU WANT TO STORE THE ORIGINAL ADMIN USER FOR REVERTING THE SESSION
$adminUserId = auth()->user()->id;

//FLUSH THE SESSION SO THAT THE NEXT TIME LOGIN IS CALLED IT RUNS THROUGH ALL AUTH PROCEDURES
session()->flush();

//GET THE USER MODEL
$user = User::find(2);

//LOGIN AS THE USER
Auth::login($user);

//IN CASE YOU WANT TO STORE THE ORIGINAL ADMIN USER FOR REVERTING THE SESSION
session()->put('admin_user_id', $adminUserId);

Run Code Online (Sandbox Code Playgroud)