В моем проекте 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>
- Пользователь не был создан.
- Instsead перенаправления на панель инструментов Я получил эту ошибку:
Эта страница не работает. localhost перенаправил вас слишком много раз. Попробуйте очистить ваши куки. ERR_TOO_MANY_REDIRECTS
Как мне решить эту проблему?
Спасибо