moj*_*uba 2 authentication oauth jwt refresh-token
我有一个移动应用程序,它通过后端实现 JWT 身份验证。访问令牌的生命周期很短(1 小时),并且不会存储在后端。现在是刷新令牌:
如果刷新令牌过期,则意味着用户将定期注销,从业务角度来看,这是非常不希望的,它可能会损害用户保留率。有没有办法在不削弱安全性的情况下避免这种情况,例如使刷新令牌“永恒”?
存储和清理刷新令牌表以防止未使用令牌累积的最佳方法是什么?假设我有以下表结构:user_id, device_id, refresh_token。如果策略是刷新令牌永不过期,则使它们失效的唯一方法是当用户注销时。但是,用户也可以删除应用程序、丢失或损坏设备,或者device_id出于任何原因进行更改。我能想到的一种解决方案是设置一个refreshed_at时间戳,允许在几个月不使用后使令牌失效。还有其他已知的技巧吗?
假设我在刷新访问令牌时除了刷新令牌之外还使用共享秘密字符串,我的理解是否正确:如果所有 3 个令牌(访问令牌、刷新令牌和共享秘密)都被泄露,我对此无能为力?API 调用的最佳实践是什么refresh?
根据过去与 Ping Federate 的合作并使用其实现,需要补充几点:
存储刷新令牌 SHA256 哈希值而不是令牌本身,以便任何恶意员工都无法窃取和使用刷新令牌
包括 client_id 和 Issued_at / Expires_at 字段。这使管理员能够按应用程序、用户和时间查找和撤销刷新令牌。
| 归档时间: |
|
| 查看次数: |
4311 次 |
| 最近记录: |