У меня есть приложение Laravel, использующее аутентификацию по паспорту.
Авторизоваться
public function authenticate(Request $request)
{
$params = [
'grant_type' => 'password',
'client_id' => 1,
'client_secret' => "secret",
'username' => request('username'),
'password' => request('password'),
'active' => 1,
'scope' => '*'
];
$request->request->add($params);
// verify the credentials and create a token for the user
$proxy = Request::create('oauth/token', 'POST');
return Route::dispatch($proxy);
}
Я установил истечение AuthServiceProvider:
Passport::routes(function ($router) {
$router->forAccessTokens();
});
Passport::tokensExpireIn(now()->addMinute(1));
Passport::refreshTokensExpireIn(now()->addDays(30));
Он работает, но через 1 минуту срок действия токена истекает. Мне нужна другая дата истечения срока действия токена в зависимости от того, где я пытаюсь войти в систему, потому что у меня есть веб-сайт, настольное приложение и приложение для Android.
Например:
Я думал отправить меня оттуда, где я пытаюсь войти в систему, но это хороший способ? Есть ли другие способы сделать это?
На данный момент я пробовал это:
-) удалено из AuthServiceProvider:
Passport::tokensExpireIn(now()->addMinute(1));
И добавлено в функцию входа в систему:
if (request('from') == 'something') {
Passport::tokensExpireIn(now()->addYears(1));
} else {
Passport::tokensExpireIn(now()->addHours(8));
}
$proxy = Request::create('oauth/token', 'POST');






Вы можете получить помощь по ссылке ниже, пожалуйста, найдите
Для получения деталей пользовательского агента и применения базы условий к агенту
например, вы можете использовать код, как показано ниже
if ( Agent::isDesktop() ) {
Passport::tokensExpireIn(now()->addYears(1));
} else if (Agent::isMobile()){
Passport::tokensExpireIn(now()->addMonth(5));
}else{
Passport::tokensExpireIn(now()->addHours(8));
}
Я не думаю, что у тебя есть какие-то проблемы. Возможно, вы можете использовать что-то вроде github.com/jenssegers/agent для проверки пользовательского агента, вместо того, чтобы отправлять что-то еще.