Закончилось просто не использованием промежуточного программного обеспечения, а созданием нескольких пользовательских функций для моей собственной системы аутентификации.Маршрут аутентификации, который обновляет токен запоминания с помощью обычного запроса авторизации:
Route::get('/auth',function (Request $request){
$email = $request->getUser();
$password = $request->getPassword();
if (Auth::attempt(['email' => $email, 'password' => $password], true)) {
User::updateRemembertoken(Auth::user(),Str::random(60));
$token = Auth::getUser()['remember_token'];
return response($token);
}
});
Этот токен затем сохраняется на стороне клиента приложения и возвращается в качестве заголовка «авторизации» для каждого другого http-вызова приложения.,Я добавил это в User.php в Laravel API:
/**
* Check to see if the "remember_me" token has been updated within the hour.
*
* @param string $date
* @return bool
*/
public static function tokenExpired($date){
$date = Carbon::createFromTimeString($date);
$currenttime = Carbon::now();
$timePlushour = $date->addHour();
if($currenttime->greaterThanOrEqualTo($timePlushour)){
return true;
}else{
return false;
}
}
/**
* Update the "remember me" token for the given user in storage.
*
* @param \Illuminate\Contracts\Auth\Authenticatable $user
* @param string $token
* @return void
*/
public static function updateRememberToken(User $user, $token)
{
$user->remember_token = $token;
//$user->setUpdatedAt(Carbon::now());
$user->save();
}
public static function authUser(string $token){
$findId = User::select('id')->where('remember_token',$token)->first();
if($findId){
if(Auth::loginUsingId($findId['id'])){
$user = Auth::user()->all();
if(User::tokenExpired(Auth::user()->updated_at)){
User::updateRemembertoken(Auth::user(),Str::random(60));
}
return Auth::user();
}
}else{
return false;
}
}
Он выполняет поиск по токену и таким образом выполняет аутентификацию пользователя, но только если токен был обновлен менее чем за час до этого.