You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails应用使用DeviseTokenAuth实现滑动过期会话配置是否正确?

配置正确性结论

你的现有配置完全可以满足你描述的业务需求,不存在逻辑问题。


各配置项对应业务逻辑说明
  • config.change_headers_on_each_request = true
    开启该配置后,后端会在每次合法请求后生成全新的访问令牌,新令牌的有效期会自动按照token_lifespan的设定重新计算,刚好实现你「用户持续发送请求则会话有效期顺延15分钟」的要求。
  • config.token_lifespan = 15.minutes
    该配置直接指定了令牌的基础有效时长为15分钟,若15分钟内没有收到用户的新请求,现有令牌就会自动失效,匹配你「15分钟未发送请求则会话过期」的要求。
  • config.batch_request_buffer_throttle = 30.seconds
    该配置是并发请求兼容设置:如果前端短时间内发起多个并行请求,30秒内的请求可以共用同一组旧认证头,避免前一个请求已经刷新了令牌、后续并行请求持旧令牌被误判为失效的问题,属于合理配置,不会影响核心会话过期逻辑。
  • config.token_cost = Rails.env.test? ? 4 : 10
    该配置是令牌加密的bcrypt成本设定,测试环境调低成本提升用例运行速度,生产环境用默认值保证安全性,没有问题。

额外注意事项

前端需要在每次请求后,更新本地存储的3个核心认证头字段:access-token、client、uid,下次请求携带更新后的字段即可,否则会出现用户持续操作依然被判定会话过期的问题。

内容的提问来源于stack exchange,提问作者Adnan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 00:06:01