Как создать пользователю службу, которая принимает токен JWT и возвращает объект пользователя - PullRequest
0 голосов
/ 28 мая 2020

У меня 3 сервиса

  • angular (интерфейс)
  • java (fapi)
  • java (backend, jpa)

Каждый пользовательский запрос состоит из заголовка <Authentification> с ключом JWT Token (перехватчик в angular).

Как мне получить пользователя из этого токена, например, для создания страницы пользователей ? Или админ поймет, что это пользователь или нет?

Я пытаюсь сохранить Map(key,value) пар (токен, пользователь) на моем переднем плане, но эта карта каждый раз удаляется.

Могу ли я сохранить нужно создать эту карту в фапи? Или сохранить токен в базе?

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Когда пользователь входит в систему, вы можете включить «имя пользователя» вместе с «токеном» в качестве ответа от серверной части. Затем вы можете сохранить {токен, имя пользователя}, полученное от бэкэнда, в localStorage в вашем интерфейсе

Пример:

// Response from backend--------------------
{
    "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
    "username": "tester"
}

// Login service from frontend--------------------
login(user: User): Observable<User> {
    return this.http.post<User>('/login', user)
        .pipe(
            map(response => {
                localStorage.setItem('currentUser', JSON.stringify(response));
                return response;
            })
        );
}

Затем, если вы хотите получить {токен, имя пользователя} из вашего интерфейса:

const currentUser = JSON.parse(localStorage.getItem('currentUser'));
0 голосов
/ 28 мая 2020

Когда пользователь входит в систему, токен может храниться в локальном хранилище или в файлах cookie.

Токен будет содержать только зашифрованные данные, которые вы ввели. Если вам нужно имя пользователя из токена, вам необходимо указать имя пользователя при создании токена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...