Laravel Linkedin проблема входа - PullRequest
       12

Laravel Linkedin проблема входа

0 голосов
/ 25 сентября 2018

Я использую Socialite-пакет для входа в LinkedIn и регистрации.Если пользователь выполняет вход в LinkedIn и на сайте LinkedIn, если его просят ввести учетные данные LinkedIn, то при перенаправлении на мой сайт Laravel пользователь не входит в систему.После этого, если пользователь снова щелкнет по имени входа в LinkedIn, то пользователю не будет предложено ввести учетные данные в LinkedIn, после чего при перенаправлении обратно на мой сайт Laravel пользователь будет успешно авторизован (тот же код контроллера работает нормально во второй раз и так далее до тех пор, пока не будет запущен файл cookie).набор входа в LinkedIn).

Вот мой код:

public function redirectToLinkedin()
{
    return Socialite::driver('linkedin')->redirect();
}


public function handleLinkedinCallback(Request $request)
{
  if($request->has('error') && $request->query('error') == 'user_cancelled_login'){
    return redirect()->route('login');
  }else{
    $linkdinUser = Socialite::driver('linkedin')->stateless()->user();
    $user = User::getUserByEmail($linkdinUser->email);
    if($user) {
      if($user->verified == 0) {

        return redirect()->route('login')
                ->withErrors(['active' => __('validation.verify_your_account')])
                ->withInput();
      }else {
        //THIS CODE IS NOT WORKING TO LOGIN THE USER
        Auth::loginUsingId($user->user_id);
        $sessionManager = new SessionManager();
        $session = $sessionManager->setLoggedInUserDetails($user);
        return redirect()->route('user.basic.profile.edit', $user->user_id);
      }
    }
    elseif(!$request->session()->has('userSelectedRoleForRegister')){
      return redirect()->route('select.role.to.register')
              ->withErrors(['error' => __('validation.select_role'),])
                   ->withInput();
    }
    else {
      $data = [
        'first_name' => $linkdinUser->user['firstName'],
        'email' => $linkdinUser->email,
        'linkedin_id' => $linkdinUser->id,
        'role' => session('userSelectedRoleForRegister'),
        'profile_image_url' => $linkdinUser->avatar_original,
      ];
      $user = $this->create($data);
      return redirect()->route('after.signup.email', $user->email);
    }
  }
}

Я сохраняю сеанс входа в систему в сеансе.

Спасибо!

...