我做了一个简单的行动'充当这个用户' for aplication adminis。 它看起来像这样:
退出当前用户
以指定用户身份登录
set' shared_cookie'基于新的当前用户(\ App \ Auth \ AuthUser :: getUserData()获取基于Auth :: user()的准备数据)
public function actAsUser(Request $request, $id)
{
Auth::guard()->logout();
$request->session()->invalidate();
\Cookie::queue(\Cookie::forget('shared_cookie'));
$id = \Hashids::decode($id)[0];
$user = User::find($id);
Auth::guard()->login($user);
\Cookie::queue(\Cookie::make('shared_cookie', \App\Auth\AuthUser::getUserData(), config('session.lifetime') , null, config('app.cookie_shared_domain'), false, false));
}
它应该有用,但不完全。 结果是随机的!
' shared_cookie'始终设置正确,但在下一个请求中,Auth :: user()随机返回旧用户或新用户。
有时看来,这取决于用户,但并不完全......
有什么想法吗?请帮忙!