Повторно отправьте запрос с обновленным токеном jwt - PullRequest
0 голосов
/ 16 сентября 2018

У меня есть конечная точка, которая выдает токен JWT:

/getJwt

token: {
  "access_token": "kjhfdhglkfhjkjfhgkjfghdkjhgkjdsgfkjhdfkjgkjhfujksfknbvckjfhdbncvujkdhgvbnfjkdghnbv",
  "expires_in": 2592000, // this is equal to 30 days  - I dont have information when it is generated
  "token_type": "Bearer"
}

И мое приложение имеет различные конечные точки для получения данных, таких как:

/getUser  
/getbusinesses

и так далее ...

Все эти конечные точки нуждаются в JWT для доступа. Если JWT истекает, я получаю следующий ответ:

{
  "code": "401",
  "message": "Unauthorized",
  "errorList": [{
    "code": "AUTH0007",
    "message": "Malformed JWT token",
    "fieldName": "Authorization"
  }]
}

code:"AUTH0007" уникален для истечения срока действия JWT.

Могу ли я сделать запрос на getJwt только на основании ответа об ошибке, который я получаю из вышеуказанных конечных точек, и повторно отправить неудавшийся запрос, или мне нужно попросить пользователя снова вызвать запрос? Я открыт для предложений по реализации любого лучшего подхода.

Я успешно звоню в JWT для каждого запроса - я хочу звонить только в случае сбоя.

простой 'запрос GET'

axios.get('/user')
  .then((result) => {
    res.status(200).json(result.data);
  })
  .catch((err) => {
    if (err.response.status === 401 && err.response.data.errorList.code === "AUTH0007") {
      //utill function to get jwt token and update the token in code
      // at this point can I send request back with updated token or do I need to ask user to trigger the new req
    }
  })

1 Ответ

0 голосов
/ 16 сентября 2018

Лучший способ справиться с этим - перенаправить пользователей на страницу входа (когда вы получаете 401 ), где они могут повторно пройти аутентификацию. Таким образом, вы можете получить новый JWT и позволить пользователю снова вызвать вызов API.

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