Как получить данные из токена JWT и продолжать запрашивать их у Клиента? .Net Core - PullRequest
0 голосов
/ 25 марта 2019

Привет! Я установил Web Api в .Net Core 2.2 для аутентификации с использованием JWT.

Я использую почтальон для тестирования и могу отправить

http://localhost:5000/api/account/login

{
    "Username" : "fred",
    "Password" : "123"
}

и ответ

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQiOiIxIiwicm9sZSI6IkFkbWluaXN0cmF0b3IiLCJuYmYiOjE1NTM0NjUxMTgsImV4cCI6MTU1MzQ2NTcxOCwiaWF0IjoxNTUzNDY1MTE4fQ.YF0ztM_p9N2UMUJKYTjJHpkvtJwVymhtOy5H5g2qOSs

Моя проблема в том, как сохранить аутентификацию пользователя и получить данные на клиенте?

У меня есть это маленькое приложение в .Net 4.5

Вход пользователя в систему, имя пользователя и пароль отправляются в web api и возвращают токен. Как и когда я должен отправить токен обратно в APi для его проверки?

Ответы [ 2 ]

1 голос
/ 25 марта 2019

Когда я создаю токен с помощью JWT для API и хочу проверить его использование в Postman, заголовок должен иметь слово «Несущий» перед токеном. Так, например, вы хотите получить данные (клиент), поэтому это метод Post с заголовком ключ : авторизация значение : носитель (ваш токен) вырезает и вставляет ваш токен с пробелом позади «Знаменосец».

0 голосов
/ 25 марта 2019

Этот поток может помочь вам. Это просто псевдокод.

Пользователь входит в систему со стороны клиента. Вы перенаправляете на домашнюю страницу после сохранения токена в локальном хранилище.

http.post("mysite.me/api/token", userCredentialsDto).subscribe(token => {
    localstorage.save(token);
    redirectTo["/home"];
});

Запрос отправляется на TokenController.cs:

[HttpPost]
public string Post(UserCredentialsDto userCreds)
{
    _validationService.validate(userCreds);
    return _jwtService.CreateToken(userCreds);
}

Когда вы переходите на домашнюю страницу или на любую другую страницу, которую хотите, вы можете получить токен доступа из вашего локального хранилища, прикрепив этот токен к заголовку каждого запроса перед отправкой на сервер .

Здесь следует отметить, что токен доступа - это то, что аутентифицирует пользователя, поэтому, если срок действия вашего токена доступа истекает, ваш пользователь аутентифицируется . По истечении срока действия токена доступа вы можете использовать токен обновления, чтобы обновить свой токен и продолжить использовать ваше приложение.

JWT кодируется в base64. Вы можете легко расшифровать его на стороне клиента. Также ядро ​​.Net автоматически связывает требования JWT с объектом HttpContext.User после успешной аутентификации .

...