如何从客户端强制进行Cognito令牌刷新

问题描述 投票:0回答:3

我正在使用aws放大,我知道令牌会在需要时自动刷新,这是在幕后完成的。

我需要做的是通过Lambda后端进程更改cognito用户池中用户的自定义属性。我能这样做,而且它正在发挥作用。但是,Web客户端用户永远不会看到这个新的自定义属性,我认为他们可以看到它的唯一方法是令牌被刷新,因为该值存储在JWT令牌中。

amazon-web-services aws-cognito aws-amplify
3个回答
0
投票

就像在这里说的那样:

https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html

访问令牌和ID令牌可以使用1小时。使用Amplify,您可以使用currentSession类中的currentUserInfoAuth获取有关会话的信息,以便能够检索有关令牌的信息。


0
投票

未记载,但您可以在用户上使用refreshSession方法。您对currentAuthenticatedUser和currentSession的下一次调用将具有更新的配置文件属性(和组)

User = Auth.currentAuthenticatedUser()
Session =  Auth.currentSession()

User.refreshSession(Session.refreshToken))

0
投票

以下是如何按需更新令牌(强制)

import { Auth } from 'aws-amplify';

try {
  const cognitoUser = await Auth.currentAuthenticatedUser();
  const currentSession = await Auth.currentSession();
  cognitoUser.refreshSession(currentSession.refreshToken, (err, session) => {
    console.log('session', err, session);
    const { idToken, refreshToken, accessToken } = session;
    // do whatever you want to do now :)
  });
} catch (e) {
  console.log('Unable to refresh Token', e);
}
© www.soinside.com 2019 - 2024. All rights reserved.