Я использую Laravel 5.5 и PHP 7.1
Я использую стандартную встроенную аутентификацию и промежуточное ПО, я ничего не настраивал.
Я хочу создать маршрут в файле маршрутов api.php, который будет выглядеть примерно так:
Route::group(array('prefix' => 'mobile'), function () {
Route::get('requestaccess', ['uses' => 'MobileController@RequestAccess']);
});
Тогда в моем MobileController у меня был бы этот код:
public function RequestAccess() {
try {
$input = request()->all();
$token = $input['token'];
//$page = $input['page'];
$user = User::where('mobile_access_token', $token)->first();
if (!$user)
return view('public.error', ['errorCode' => 901]);
if ($user->mobile_access_expires < Carbon::now())
return view('public.error', ['errorCode' => 902]);
// I tried with and without the second param (true)
if (!Auth::loginUsingId($user->id, true))
return view('public.error', ['errorCode' => 903]);
// My code makes it to here just fine which means the token
// was valid and I
// successfully logged in.
// Now I want to send them to a page where the user
// can browse and remain logged in.
// I tried the following line but it does not work
// It just immediately redirects me to the login page
return redirect(url('dashboard'));
// The following line works but if user clicks a link
// to go to any other page it redirects them to the login page
return view('console.dashboard.dashboard');
} catch (\Exception $e) {
return view('public.error', ['errorCode' => 900, 'errorMessage' => $e->getMessage()]);
}
}
и в файле маршрута web.php у меня есть следующее:
Route::group(['middleware' => 'auth'], function() {
Route::get('dashboard', ['uses' => 'DashboardController@getDashboard']);
});
и, конечно, для тестирования я набираю что-то вроде этого в своем браузере:
example.com/api/mobile/requestaccess?token=abc
Все в одном домене. Я просто хочу войти в систему, чтобы пользователи оставались в системе во время просмотра сайта.
Любая помощь будет принята с благодарностью.