在 Auth0 的 /userinfo api 端点中发送的不记名令牌是否会过期?

Does the bearer token sent in Auth0's /userinfo api endpoint ever expire?

我们在 SPA 中使用隐式流为 Auth0 设置了他们的 Lock 小部件 v11。我们在 Auth0 管理门户的应用程序设置中将 JWT 过期设置为 15 分钟,并且我们在我们的 Web 应用程序中使用静默身份验证来定期获取新令牌。

该流程运行良好,令牌按预期过期。我们的问题与 userinfo 端点有关。 Auth0 Lock 小部件在内部对 userinfo 端点执行 XHR 请求。在安全检查期间,我们发现如果这样的请求被我们记录下来,然后在几个小时后在 Postman 中再次请求,端点仍然会以用户详细信息(例如姓名和电子邮件)作为响应。该请求中发送的不记名令牌与发出的具有 15 分钟到期时间的不记名令牌不同。

这对我们来说是一个安全问题,因为在用户选择注销后很长时间内仍可能获取基本用户信息。

在 Auth0 管理门户中,我尝试在租户设置 > 高级下将 "Inactivity timeout"/"Require log in after" 设置为 1 分钟。我还尝试在应用程序设置下降低 "JWT expiration"。 None 这些设置正在影响 userinfo 请求,该请求仍然以用户详细信息作为响应。

对 userinfo 端点的请求示例:

GET https://<tenant>.eu.auth0.com/userinfo

Request headers:
Authorization:Bearer <some token with length of 32>

响应示例:

{
    "sub": "auth0|xxxxxxxxxxxxxxxxxx",
    "nickname": "John",
    "name": "John Doe",
    "picture": "xxxxxxxxxxxx",
    "updated_at": "2019-08-29T12:32:39.352Z",
    "email": "user@example.com",
    "email_verified": true
}

是否有任何设置可以控制发送到 userinfo 的不记名令牌的到期时间?它不应与应用程序 JWT 过期设置具有相同的过期时间吗?

遗憾的是,端点的令牌过期时间已设置且无法更改。该文档提供了答案。

https://auth0.com/docs/tokens/guides/access-token/set-access-token-lifetime#access-token-lifetime-for-the-oidc-user-profile-endpoint