AWS Cognito强制刷新会话

Hyp*_*erk 3 javascript amazon-web-services aws-sdk aws-cognito

当我尝试刷新会话令牌(Access,Id,Refresh)时,我遇到了一些问题.我已经阅读了这个问题,答案帮助我理解了一些问题.但我觉得我想做的事情并不完全getSession是为了什么.

我正在尝试实现会话到期消息(完成),允许用户扩展其会话(刷新令牌).根据我收集的内容getSession(),它返回旧令牌(如果它们仍然有效)或新令牌(如果它们无效).如果我错了,请纠正我.

我试图在每次单击扩展会话时为用户提供新的/刷新的令牌.出于开发目的,我有一个按钮,然后使用扩展会话按钮显示消息.我打电话时收到的令牌getSession()是旧的,但我希望它们是新的.

所以基本上,使旧会话无效并给它们一个新会话.

我的问题是:

  1. getSession()如前所述,我是否缺少一些理解?
  2. 我可以为用户提供新的会话令牌(Access,Id,Refresh)吗?
  3. 我可以在没有用户再次登录的情况下执行#2吗?

谢谢.

编辑1:知道我没有使用任何联合身份可能会有所帮助.

Dan*_*oek 6

你可以调用cognitoUser.refreshSession.我在这里找到了一个合理的例子:

示例代码:如何使用Node.js和Express刷新Cognito用户池的会话

寻找名为checkTokenExpiration的方法,它完全解释了为刷新会话必须做的事情.

  • 我不敢相信我没有看到`refreshSession`方法。我将在接下来的几天研究它。谢谢。 (2认同)
  • 在 aws-amplify 中,您可以执行以下操作: `const currentUser = wait Auth.currentAuthenticatedUser(); const currentSession = 等待 Auth.currentSession(); currentUser.refreshSession(currentSession.refreshToken, (err, session) => { });` (2认同)