0

我有一个已通过设计验证的 rails-grape api 应用程序。现在我正在尝试使用 api 实现自动会话超时。为此,我实现了 devise_auth_token gem。

我的 devise_auth_token.rb

DeviseTokenAuth.setup do |config|
  config.change_headers_on_each_request = false
  config.token_lifespan = 60.seconds
  config.batch_request_buffer_throttle = 30.seconds
end

我已经运行了文档中提到的安装命令。

rails g devise_token_auth:install User auth

我已经更新了我的迁移文件,例如:

 class DeviseTokenAuthCreateUsers < ActiveRecord::Migration[5.2]
  def change
   ## Required
   add_column :users, :provider, :string, null: false, default: "email"
   add_column :users, :uid, :string, null: false, default: ""

   ## Tokens
   add_column :users, :tokens, :json
   add_index :users, [:uid, :provider], unique: true
  end
end

我的路线.rb

devise_for :users, ActiveAdmin::Devise.config
 # token auth routes available at /api/v1/auth
  namespace :api do
    scope :v1 do
      mount_devise_token_auth_for 'User', at: 'auth'
    end
  end

如您所见,我将 token_lifespan 保持为 60 秒。但即使在我闲置近 5 分钟后,我的会话也不会过期。我需要帮助来了解我在这里缺少/做错了什么。任何帮助将不胜感激。

提前致谢。

4

1 回答 1

1

据我记得会话过期功能仅适用于config.change_headers_on_each_request = true

观看此https://github.com/lynndylanhurley/devise_token_auth/issues/573

于 2020-12-08T14:39:23.293 回答