Пользовательская аутентификация laravel на основе ответного вызова API
В настоящее время я использую Laravel 5.7 и пытаюсь создать механизм входа в систему. Случай, аналогичный пользовательской аутентификации пользователя, основан на ответе на вызов API.
В моем случае у меня нет собственной базы данных и пользовательской таблицы локально. Все, что нужно, это вызвать API для проверки, передав имя пользователя, пароль, идентификатор клиента, секрет клиента.
Мой запрос к API в почтальоне:
POST Body
{
"username": "tester",
"password": "ps",
"CLIENT_ID": "xx",
"CLIENT_SECRET": "yy"
}
Ответ от API за успех события в почтальоне. Информация о пользователе находится в этом токене JWT путем его декодирования.
{
"token_type": "Bearer",
"id_token": "eyJraWQiOiNGUvdFZC...",
"access_token": "eyJraWQiOi....",
"expire_in": 3600,
"refresh_token": "eyJjdHkiOiJK..."
}
Я хочу сделать что-то вроде в loginContoller и использовать Auth::**:
public function postSignIn(Request $request)
{
$username = strtolower($request->username);
$password = $request->password;
if (Auth::attempt(['username' => $username, 'password' => $password])) {
return Redirect::to('/dashboard')->with('success', 'Hi '. $username .'! You have been successfully logged in.');
} else {
return Redirect::to('/')->with('error', 'Username/Password Wrong')->withInput(Request::except('password'))->with('username', $username);
}
}
Вопрос:
Как я могу реализовать аутентификацию API в laravel? (используя жретку, поставщика услуг, аутентифицируемый договор и драйвер аутентификации?)
Как сохранить токен доступа в сеансе / файле cookie, чтобы прикрепить его к каждому запросу, отправленному API каждый раз после этого?
Как сохранить токен обновления и использовать его для получения токена доступа после того, как он недействителен?
Я ценю все помощь или любой пример / руководство.
1 ответ
Вам не нужно делать это самим, есть множество плагинов, которые могут помочь вам, как, например, паспорт лавы, настолько простой в использовании, что вам нужно посмотреть