【问题标题】:AWS Cognito force refresh sessionAWS Cognito 强制刷新会话
【发布时间】:2017-05-24 05:17:17
【问题描述】:

我在尝试刷新会话令牌(访问、ID、刷新)时遇到了一些问题。我已经阅读了this question,答案帮助我了解了一些情况。但我觉得我想做的并不是getSession 的用途。

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

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

所以基本上,取消旧会话并给他们一个新会话。

我的问题是:

  1. 如前所述,我是否缺少对 getSession() 的一些了解?
  2. 我可以给用户新的会话令牌(Access、Id、Refresh)吗?
  3. 我可以在不让用户再次登录的情况下执行 #2 吗?

谢谢。

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

【问题讨论】:

    标签: javascript amazon-web-services aws-sdk aws-cognito


    【解决方案1】:

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

    Sample code: how to refresh session of Cognito User Pools with Node.js and Express

    查找名为 checkTokenExpiration 的方法,它很好地解释了刷新会话所必须执行的操作。

    【讨论】:

    • 我不敢相信我没有看到refreshSession 方法。我会在接下来的几天里研究它。谢谢。
    • 终于有时间检查了。这是正确的答案。
    • @HypnicJerk 在 aws-amplify 中是否可行
    • 在 aws-amplify 中你可以这样做:const currentUser = await Auth.currentAuthenticatedUser(); const currentSession = await Auth.currentSession(); currentUser.refreshSession(currentSession.refreshToken, (err, session) => { });
    猜你喜欢
    • 2018-12-09
    • 1970-01-01
    • 2021-07-31
    • 2018-06-28
    • 2018-04-03
    • 2020-09-28
    • 2017-11-22
    • 2018-11-28
    • 2019-12-16
    相关资源
    最近更新 更多