В моем приложении Laravel -5.8 я использовал Azure Аутентификацию в социальных сетях AD:
LoginController
protected $redirectTo = '/dashboard';
public function redirectToProvider()
{
return Socialite::with('azure')->redirect();
}
public function handleProviderCallback()
{
$azureUser = Socialite::with('azure')->user();
try
{
$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');
}
}
}
catch(\Exception $e)
{
session()->flash("error", "Authentication failed, kindly contact the Administrator!");
return redirect(route('login'));
}
}
login.blade
<h2 class="login-box-msg"><b>Welcome</b></h2>
@if(session()->has('error'))
<p>{{ session()->get('error') }}</p>
@endif
<form action="{{ route('login') }}" method="POST">
{{ csrf_field() }}
<div class="row">
<div class="col-12">
<!--<button type="submit" class="btn btn-primary btn-block btn-flat">{{ trans('global.login') }}</button>-->
<a href="{{ route('azure.login') }}" class="btn btn-primary btn-block"> Login</a>
</div>
</div>
</form>
Когда пользователь нажимает на Login, приложение должно перенаправить на Azure AD Login. И затем, если вход в систему успешен, он должен перенаправить на Dashboard.
Это происходит в первый раз, но когда пользователь хочет получить доступ к приложению в другое время, по щелчку входа он перенаправляет его прямо на панель без имени пользователя и пароля AZ.
Но когда я очищаю кеш браузера, он запрашивает имя пользователя и пароль.
Как заставить приложение в любой момент всегда запрашивать Azure учетные данные AD?
Спасибо.