Я выполнил простое действие «Действовать как этот пользователь» для администратора приложений.
Это выглядит так:
Выйти из системы текущего пользователя
войдите под данным пользователем
установить '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 () случайным образом возвращает старого или нового пользователя.
Иногда кажется, что это зависит от пользователя, но не совсем ..
Есть идеи? Пожалуйста, помогите!