Сеанс принудительного обновления AWS Cognito

Я сталкиваюсь с некоторыми проблемами, когда пытаюсь обновить токены сеанса (Access, Id, Refresh). Я уже прочитал этот вопрос и ответ помог мне понять, что происходит. Но я чувствую, что то, что я пытаюсь сделать, не совсем то, для чего предназначен getSession.

Я пытаюсь реализовать сообщение об истечении сеанса (сделано), которое позволяет пользователю продлить сеанс (обновляет токены). Из того, что я понял о getSession(), он возвращает либо старые токены, если они все еще действительны, либо новые токены, если они недействительны. Пожалуйста, поправьте меня, если я ошибаюсь.

Я пытаюсь предоставить пользователю новые/обновленные токены каждый раз, когда они нажимают на продление сеанса. Для целей разработки у меня есть кнопка, которая затем отображает сообщение с кнопкой продления сеанса. Токены, которые я получаю при вызове getSession(), являются старыми, но я хочу, чтобы они были новыми.

Таким образом, в основном, аннулирование старого сеанса и предоставление им нового.

Мои вопросы:

  1. Я что-то не понимаю в отношении getSession(), как упоминалось ранее?
  2. Могу ли я дать пользователю новые токены сеанса (Access, Id, Refresh)?
  3. Могу ли я выполнить № 2 без повторного входа пользователя?

Спасибо.

РЕДАКТИРОВАТЬ 1: Может быть полезно узнать, что я не использую никаких федеративных удостоверений.


person Hypnic Jerk    schedule 09.01.2017    source источник


Ответы (1)


Вы можете вызвать cognitoUser.refreshSession. Я нашел для вас разумный пример здесь:

Пример кода: как обновить сеанс пользовательских пулов Cognito с помощью Node.js и Express

Ищите метод с именем checkTokenExpiration, он прекрасно объясняет, что вам нужно сделать, чтобы обновить сеанс.

person Danny Hoek    schedule 14.02.2017
comment
Не могу поверить, что не видел метод refreshSession. Я посмотрю на это в ближайшие пару дней. Спасибо. - person Hypnic Jerk; 14.02.2017
comment
Наконец-то дошли руки проверить. Это правильный ответ. - person Hypnic Jerk; 31.03.2017
comment
@HypnicJerk возможно ли это в aws-amplify - person techie18; 20.11.2018