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

如何在devise_token_auth gem中启用「记住我」功能?

解决devise_token_auth「记住我」功能失效的步骤

1. 确认User模型包含:rememberable模块

在app/models/user.rb中,确保devise配置包含:rememberable模块,示例代码:

class User < ApplicationRecord
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :validatable
  include DeviseTokenAuth::Concerns::User
end

2. 添加remember_token相关数据库字段

如果users表还没有remember_token和remember_created_at字段,生成并执行迁移:

rails generate migration AddRememberableToUsers remember_token:string remember_created_at:datetime
rails db:migrate

3. 检查devise_token_auth初始化配置

打开config/initializers/devise_token_auth.rb,确认以下配置项为true:

config.allow_remember_me = true

若该配置被注释或设为false,修改后重启服务器。

4. 确保请求参数与强参数配置正确

  • 登录请求中remember_me参数值可设为true、'true'、1或'1'
  • 若应用启用强参数限制,需在app/controllers/application_controller.rb(或自定义认证控制器)中允许该参数:
before_action :configure_permitted_parameters, if: :devise_controller?

protected

def configure_permitted_parameters
  devise_parameter_sanitizer.permit(:sign_in, keys: [:remember_me])
end

验证功能有效性

登录成功后,可检查users表中对应记录的remember_created_at字段是否有值;后续token过期后,使用保存的认证信息请求接口,应能自动刷新并维持登录状态。

内容的提问来源于stack exchange,提问作者hunglt.ee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 12:54:54