Laravel - эта страница не работает. localhost перенаправил вас слишком много раз - PullRequest
0 голосов
/ 18 марта 2020

В моем проекте Laravel -5.8 я пытался использовать Azure AD Socialite:

Если учетная запись пользователя появляется в локальной базе данных, она входит в систему и перенаправляет на панель управления.

Но если он не существует, он создает его, входит в систему и перенаправляет на панель управления.

public function handleProviderCallback()
{
  $azureUser = Socialite::with('azure')->user();
 try 
 {
    $password = bcrypt("123456");
    $user = User::where('email', $azureUser->email)->orWhere('username', $azureUser->user['mailNickname'])->first();
    if($user)
    {
        if(Auth::loginUsingId($user->id))
        {
            $user->update([
                 'last_login_at' => now(),
            ]);
           return redirect()->route('dashboard');
        }
    }
    else
    {
        $arr = [
            'email'                     => $azureUser->email,
            'first_name'                => $azureUser->user['givenName'],
            'last_name'                 => $azureUser->user['surname'],
            'username'                  => $azureUser->user['mailNickname'],
            'password'                  => $password,
            'company_id'                => 1,
           // 'created_by'                => Auth::user()->id,
            'created_at'                => date("Y-m-d H:i:s"),
            'is_status'                 => 1,
            'is_active'                 => 1,
        ];

        $employee = HrEmployee::create($arr);

        $user                   = new User;
        $user->email            = $azureUser->email;
        $user->username         = $$azureUser->user['mailNickname'];
        $user->password         = $password;
        $user->first_name       = $azureUser->user['givenName'];
        $user->last_name        = $azureUser->user['surname'];
        $user->employee_id      = $employee->id;
        $user->company_id       = 1;
        $user->email_sent       = 1;
        $user->account_verified = 1;
        $user->created_at       = date("Y-m-d H:i:s");  
        $user->active           = 1;
        $user->is_status        = 1;
        $user->save();

        $employee->update(['user_id' => $user->id]);
        $user->update(['created_by' => $user->id]);

        if(Auth::loginUsingId($user->id))
        {
            $user->update([
                 'last_login_at' => now(),
            ]);
           return redirect()->route('dashboard');
        }                

    }
}
catch(\Exception $e){
    //Authentication failed
    return redirect()
        ->back()
        ->with('status','Authentication failed, kindly contact the Administrator!');
 }
}

route / web. php

Route::get('employees/notify_hr', 'Auth\RegisterUserController@notify_hr')->name('employees.notify_hr');

view:

<a href ="{{ route('employees.notify_hr')}}" class="btn btn-info float-right"> Notify HR</a> 
  1. Пользователь не был создан.
  2. Instsead перенаправления на панель инструментов Я получил эту ошибку:

Эта страница не работает. localhost перенаправил вас слишком много раз. Попробуйте очистить ваши куки. ERR_TOO_MANY_REDIRECTS

Как мне решить эту проблему?

Спасибо

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