У меня есть Spring REST backend и Angular frontend.Как получить информацию о пользователе после проверки REST на стороне клиента?
Аутентификация выполняется с использованием запроса POST для URL «/ login» с именем пользователя и паролем внутри запроса. Тело JSON (я использую проверку на основе форм). Ответы бэкэнда REST с кодом ОК. Все в порядке, и я могу выполнять другие запросы из интерфейса, требующие аутентификации.
Но интерфейс должен знать, какова роль аутентифицированного пользователя, чтобы он мог отображать правильный вид/rote для него. И где мы можем получить эту роль в интерфейсе? Единственный ответ, который мы получили от аутентификации, был в порядке, и это нормально для REST.
Мы можем получить информацию о пользователе, выполнив запрос GET на «/ users/[user_id]». Но у нас нет идентификатора пользователя, просто имя пользователя.
Итак, вопрос: Какой правильный способ для REST получить роль (или другую пользовательскую информацию) из интерфейса, имеющего только имя пользователя?
В качестве обходного пути я могу создать новый запрос на бэкэнд, который принимает имя пользователя вместо id, или я могу добавить идентификатор пользователя для ответа на аутентификацию. Но я не уверен, что это правильный путь с точки зрения REST.
Если ваш сервер требует передачи идентификатора пользователя, чтобы получить текущую информацию пользователя, но не позволяет получить идентификатор пользователя, тогда у бэкэнд проблемы с серьезными проблемами. Кажется, вы можете отправить запрос, требующий аутентификации. Это означает, что бэкенд способен определить, кто вы (возможно, благодаря файлу cookie). Если это правда, вам не нужно передавать что-либо в качестве параметра, поскольку оно неявно передается в cookie. У вас может быть только ресурс/текущий пользователь. –
И бэкэнд, и интерфейс находятся в разработке мной. Каков правильный способ для бэкэнд предоставлять информацию о пользователе после REST? –
Я только что сказал. Предполагая, что бэкэнд имеет неявный способ идентификации запросов (например, с помощью файла cookie), вы можете просто указать/current-user, или a/me или все, что вы хотите назвать им, ресурсом. Например, https://developer.github.com/v3/users/#get-the-authenticated-user. –