AWS Cognito - используйте Refre sh токен сразу после входа в систему - PullRequest
0 голосов
/ 15 февраля 2020

Я хочу принудительно-refre sh токен Cognito AWS в клиенте, чтобы, как только пользователь вошел в приложение, немедленно использовал токен refre sh для получения нового токена доступа (с более длинным время опыта). Я читал о initiateAuth и методах cognitoUser.refreshSession (), но я не уверен, какой мне нужно использовать? Я пробую описанный ниже метод и получаю новый токен обратно, но он всегда действует только в течение еще 1 часа (по крайней мере, это то, что я вижу, когда проверяю время опыта на токене). Я хочу получить токен, действительный в течение 30 дней (это то, что я настроил в Cognito). Любая помощь будет принята с благодарностью!

	
  const getTokens = function(session) {
    return {
      accessToken: session.getAccessToken(),
      idToken: session.getIdToken(),
      refreshToken: session.getRefreshToken()
	};
  
  cognitoUser.refreshSession(refreshToken, (err, session) => {
		if (err) {
			console.log(err);
		} else {
      		const tokens = getTokens(session);
			console.log(tokens);
      localStorage.setItem("sessionTokens", JSON.stringify(tokens));
    }
  }

1 Ответ

0 голосов
/ 16 февраля 2020

Идентификатор и токен доступа в Cognito действительны в течение 1 часа, и их нельзя настроить. Вы упомянули, что настроили токены на 30 дней, это время действия / истечения срока действия ваших refre sh токенов.

Вызов определенных методов на клиентских SDK (Amplify или identity SDK) автоматически проверьте срок действия и срок действия токенов и при необходимости обновите sh.

...