Laravel 5.5 Переключение пользователей в сеансе - PullRequest
0 голосов
/ 27 апреля 2018

Я выполнил простое действие «Действовать как этот пользователь» для администратора приложений. Это выглядит так:

  1. Выйти из системы текущего пользователя

  2. войдите под данным пользователем

  3. установить '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 () случайным образом возвращает старого или нового пользователя.

Иногда кажется, что это зависит от пользователя, но не совсем ..

Есть идеи? Пожалуйста, помогите!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...