Как правильно настроить аутентификацию для rest api?
Раньше был опыт написания rest api для spa приложений. Там все просто, клиент по логину и паролю обращается к роуту /login и если данные валидны, сервер выдает клиенту токен, который потом клиент передает серверу в заголовках. А как быть с ситуацией, когда нету роута /login? Т.е. у клиента нет возможности самостоятельной регистрации для получения логина и пароля. Получается серверу нужно наперед как-то сгенерировать логин и пароль для клиента и потом отправить их ему для получения токена? Или сервер должен сам сгенерить токен для клиента и потом клиент при каждом запросе должен передавать этот токен? Помогите разобраться
Как правило если есть некий личный кабинет, то пользователь может авторизоваться в нём и сгенерировать token/api-key который вы привязываете в базе к пользователю и по нему авторизуете клиента при обращении к api. Клиент может использовать этот api-key для работы с api
1. войдите в кабинет
2. получите api ключ
3. используйте этот ключ для работы с api
p.s. если выберете этот путь, не забудьте дать пользователю возможность перевыпустить api-ключ на случай его утечки или компрометации.
Для правильного вопроса надо знать половину ответа
Это ваш сервис? Тогда что мешает добавить роут /login?
Если не ваш, то стоит прочитать документацию и посмотреть, каким образом осуществляется аутентификация клиента.
Kolya Vantukh, При самостоятельной регистрации пароль задаётся клиентом, обычно одновременно с логином.
Если пользователя заводит администратор, то пользователю можно прислать письмо с одноразовой уникальной короткоживущей ссылкой, перейдя по которой он сможет установить себе пароль.