【问题标题】:Is there a way to override the exp property on access tokens in Amazon Cognito?有没有办法覆盖 Amazon Cognito 中访问令牌的 exp 属性?
【发布时间】:2021-06-22 21:04:17
【问题描述】:

我需要能够为每个用户指定会话超时。 (因此对于每个用户来说它可能是不同的值)使用访问令牌上的“exp”属性来实现这一点似乎很自然,(因为它是 oauth 规范中的目的),但 cognito 似乎忽略了对此的更新在 preTokenGeneration 触发器中。有没有办法在每个用户的基础上更新它?还是我真的需要定义一些将在 Id 令牌上检查的自定义属性?

【问题讨论】:

    标签: amazon-cognito


    【解决方案1】:

    很好的问题。我相信你知道since August 2020 Cognito allows you to configure access token expiry time from 5 mins to 1 day。配置是每个应用程序客户端。如果您能够在应用程序客户端之间拆分用户,这可能是一种选择(例如,在一个页面上登录长会话的管理员,在另一个页面上登录普通用户)。您可以使用预身份验证触发器将应用程序客户端锁定到某些用户。不过,这不是一个非常可配置的解决方案。

    我还想知道您所说的会话究竟是什么意思?例如,这通常意味着两件事之一。要么您的会话到期,您必须在固定时间长度后重新登录(例如 AWS 是 24 小时)。或者,如果您闲置了一段时间(例如 30 分钟),您的会话将结束。你能详细说明一下你的要求吗?

    【讨论】:

    • 我需要更新访问令牌和刷新令牌上的exp(对于一段时间不活动和必须在固定时间后再次登录的要求。)我认为我可以说服 PM 更新到要求,这样它就不能按用户编辑,而是绑定到组,并且每个组使用单独的应用程序客户端。谢谢!
    • 你也可以在客户端做一些事情来主动注销用户。例如,我使用 idle-vue 来注销已经空闲一段时间的用户。它不是一个“安全”的解决方案,因为它可以被规避。这不是一个安全问题,因为唯一可能发生的“恶意”事情是会话持续时间更长。但如果你正在开发一个金融应用程序,可能无法接受!
    猜你喜欢
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 2022-08-02
    • 2022-08-23
    相关资源
    最近更新 更多