gpt4 book ai didi

authentication - 在数据库中存储和维护 JWT 刷新 token 的最佳策略?

转载 作者:行者123 更新时间:2023-12-05 08:49:36 24 4
gpt4 key购买 nike

我有一个使用后端实现 JWT 身份验证的移动应用程序。访问 token 是短暂的 (1h) 并且不存储在后端。现在是刷新 token :

  1. 如果刷新 token 过期,这意味着用户将定期注销,这从业务角度来看是非常不受欢迎的,它会损害用户保留率。有没有办法在不削弱安全性的情况下避免这种情况,例如使刷新 token “永恒”?

  2. 存储和清理刷新 token 表以防止未使用 token 累积的最佳方法是什么?假设我有以下表结构:user_iddevice_idrefresh_token。如果策略是永不过期刷新 token ,则使它们无效的唯一方法是在用户注销时。但是,用户也可以出于任何原因删除应用程序、丢失或损坏设备,或者更改其 device_id。我能想到的一种解决方案是使用 refreshed_at 时间戳,允许在几个月未使用后使 token 失效。还有其他已知的技巧吗?

  3. 假设我在刷新访问 token 时除了使用刷新 token 外还使用了共享 key 字符串,我的理解是否正确,如果所有 3 个都被泄露(访问 token 、刷新 token 和共享 key ),我将无能为力关于它? refresh API 调用的最佳做法是什么?

最佳答案

基于过去与 Ping Federate 合作并使用过它们的实现,有几点要补充:

  • 存储刷新 token SHA256 哈希而不是 token 本身,这样任何流氓员工都无法窃取和使用刷新 token

  • 包括 client_id 和 issued_at/expires_at 字段。这使管理员能够按应用程序、用户和时间查找和撤销刷新 token 。

关于authentication - 在数据库中存储和维护 JWT 刷新 token 的最佳策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63654810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com