在 Auth0 的 /userinfo api 端点中发送的不记名令牌是不是会过期?
Posted
技术标签:
【中文标题】在 Auth0 的 /userinfo api 端点中发送的不记名令牌是不是会过期?【英文标题】:Does the bearer token sent in Auth0's /userinfo api endpoint ever expire?在 Auth0 的 /userinfo api 端点中发送的不记名令牌是否会过期? 【发布时间】:2020-01-02 18:39:35 【问题描述】:我们在我们的 SPA 中使用隐式流设置了 Auth0 和他们的 Lock 小部件 v11。我们在 Auth0 管理门户的应用程序设置中将 JWT 到期时间设置为 15 分钟,并且我们在 Web 应用程序中使用静默身份验证来定期获取新令牌。
该流程运行良好,令牌应按原样过期。我们的问题在于 userinfo 端点。 Auth0 Lock 小部件在内部向 userinfo 端点发出 XHR 请求。在安全检查期间发现,如果我们记录了这样的请求,然后在几个小时后在 Postman 中再次请求,端点仍然会以用户详细信息(例如姓名和电子邮件)进行响应。该请求中发送的不记名令牌与过期时间为 15 分钟的不记名令牌不同。
这对我们来说是一个安全问题,因为在用户选择退出后很长时间仍可以获得基本的用户信息。
在 Auth0 管理门户中,我尝试将租户设置 > 高级下的“不活动超时”/“需要登录后”设置为 1 分钟。我还尝试在应用程序设置下降低“JWT 过期”。这些设置都不会影响仍以用户详细信息响应的用户信息请求。
对 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 过期设置一样过期吗?
【问题讨论】:
您是否考虑过对上次更新时间超过 15 分钟的令牌进行撤销? GitHub InformationDev.to Link 【参考方案1】:不幸的是,令牌过期是为端点设置的,无法更改。该文档提供了答案。
https://auth0.com/docs/tokens/guides/access-token/set-access-token-lifetime#access-token-lifetime-for-the-oidc-user-profile-endpoint
【讨论】:
以上是关于在 Auth0 的 /userinfo api 端点中发送的不记名令牌是不是会过期?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Auth0 授权来自我们的 SPA 和其他后端服务的 API 请求
如何在 Android 中打印受 Auth0-JWT 保护的私有 API 端点 JSON 对象?