Im построил гибридное приложение в кордове и использовал laravel as api, но я немного смутился с Auth: api, я не мог найти ни одного тату, объясняющего то, что я хочу! Я хочу знать, как пользователь может пройти аутентификацию из приложения на своем телефоне до моего laravel api, насколько я знаю, я собираюсь использовать api_token (случайную строку), которую я собираюсь хранить в таблице Users, это прекрасно но как я могу аутентифицировать пользователя с ним и как заставить пользователя отправлять его со всеми запросами? могу ли я просто сохранить его в приложении и продолжать его отправлять? Я застрял с логином! как войти в систему в первый раз? Im Я буду использовать логин, предоставленный laravel, или создать новый для этого? helplaravel 5.2 building api Auth
ответ
За использование auth:api
охранник в Ларавеле 5.2 см. https://andrew.cool/blog/64/How-to-use-API-tokens-for-authentication-in-Laravel-5-2 кажется довольно тщательным.
Теперь для остальных ваших вопросов:
Для входа в систему вам потребуется вызов API, который клиент будет использовать для входа, скажем:
POST logins
с телом:
{
"email": "[email protected]",
"password": "password"
}
который в Laravel может представить в виде:
Route:post('logins', '[email protected]');
Теперь в методе MyApiController::login()
вы будете проверять учетные данные, предоставленные email
, password
и если они совпадают с записью в базе данных, то вы будете реагировать с api_token
. То, что api_token можно создать «на лету» (сделать его трудно сломать), или если у пользователя уже есть api_token
, вы можете вернуть его. Это зависит от политики истечения срока действия, если вы хотите, чтобы логин также означал выход из системы на другие устройства и т. Д.
Если учетные данные не совпадают, вы ответите 400 Bad Request
, и клиент в этом случае должен попытаться снова войти в систему ,
Для вашего другого вопроса, да, клиентское приложение должно помнить api_token
и включать его в каждый вызов API, который ему нужен.
Позаботьтесь о том, чтобы Laravel искал api_token
в определенном порядке, как видно из кода ниже (то есть Laravel 5.4). В ссылке, которую я вам дал выше, есть инструкции о том, как включить api_token
.
public function getTokenForRequest()
{
$token = $this->request->query($this->inputKey);
if (empty($token)) {
$token = $this->request->input($this->inputKey);
}
if (empty($token)) {
$token = $this->request->bearerToken();
}
if (empty($token)) {
$token = $this->request->getPassword();
}
return $token;
}
- 1. пользователь auth Laravel 5.2
- 2. Auth :: попытка() laravel 5.2
- 3. Laravel 5.2 make: auth
- 4. Laravel 5.2 - middleware auth
- 5. Laravel 5.2 Auth routing
- 6. Ajax - Laravel 5.2 Auth
- 7. LDAP Auth для Laravel 5.2
- 8. Laravel 5.2 Auth не работает
- 9. Laravel 5.2 auth Пропущенный мимо
- 10. Laravel 5.2 Отношения с Auth
- 11. Laravel 5.2 Аутентификация через API
- 12. Laravel 5.2 Multi-Auth с защитой API использует неправильную таблицу
- 13. Laravel 5.2 Multi Auth not loggin in
- 14. bad Auth :: попытка в Laravel 5.2
- 15. Laravel 5.2 - Basic Auth using .htpasswd
- 16. Multi auth laravel 5.2, autentication not working
- 17. Laravel 5.2 Bcrypt сломанный поэтому Auth сломанный
- 18. Auth не сохраняется в Laravel 5.2
- 19. Laravel 5.2 Auth :: login ($ user) не работает
- 20. Laravel 5.2 Auth Страница регистрации заблокирована
- 21. Laravel 5.2: Auth :: check() продолжает возвращать false
- 22. Laravel 5.2 Auth :: login() не сохраняется
- 23. php - Laravel 5.2 Auth not Working
- 24. laravel 5.2 multi auth не работает
- 25. Laravel 5.2 multi auth logout не работает
- 26. laravel 5.2 Auth: attemp всегда возвращает false
- 27. Laravel 5.2 no auth :: check() when exception
- 28. Multi auth для laravel 5.2 use middleware
- 29. Как найти контроллер auth в laravel 5.2
- 30. Auth :: пользователь() возвращает нуль в Laravel 5.2
Спасибо, человек, если я это сделал, это может быть 'Auth :: guard ('api') -> user()' вернуть пользователя, прошедшего проверку подлинности? – brahimm
Да, это будет, см. TokenGuard :: user(), чтобы увидеть подробности –