Я настроил паспортные маршруты для входа пользователей через API для мобильного приложения.Однако часть мобильного приложения использует веб-просмотр для отображения стробированного контента, а часть его извлекает из API для другого контента.
Как только пользователь входит в приложение с помощью API, мне нужно, чтобы они также были зарегистрированыв веб-контент в то же время.
Однако с помощью API не создано ни одного сеанса.Как я могу одновременно входить и выходить из системы через API таким образом, чтобы при отображении веб-просмотра он переносился?
Я пытался использовать это на моем API\LoginController.php
для входа в систему:
protected function sendLoginResponse(Request $request)
{
if ($request->hasSession()) {
$request->session()->regenerate();
} else {
// Login user for PWA pages.
\Session::start();
\Auth::login($this->guard()->user());
}
$this->clearLoginAttempts($request);
return $this->authenticated($request, $this->guard()->user());
}
protected function authenticated(Request $request, User $user): ?JsonResponse
{
return response()->json(['token' => $user->createToken(config('app.name'))->accessToken], 200);
}
Это расширяет базовое значение по умолчанию Laravel LoginController.php
, но переопределяет эти методы для поддержки ответов JSON.
Связанный маршрут:
Route::post('login')->name('api.auth.login')->uses('API\\Auth\\LoginController@login');
Вход в систему работает нормально при вызове через API, но делаетне сохранять сеанс в веб-представлении.