продолжительность жизни токена не работает с токеном devise auth token gem и devise в рельсах виноградного API

У меня есть API-приложение rails-grape, которое было аутентифицировано с помощью devise. Теперь я пытаюсь реализовать тайм-аут автоматического сеанса с помощью apis. Для этого я реализовал гем devise_auth_token.

Мой 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

Мои маршруты.рб

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 минут, срок действия моего сеанса не истекает. Мне нужна помощь, чтобы понять, что я здесь упускаю/делаю неправильно. Любая помощь будет высоко оценена.

Заранее спасибо.


person Soumyadip Chakraborty    schedule 28.04.2020    source источник


Ответы (1)


Насколько я помню, функция истечения сеанса работает только с config.change_headers_on_each_request = true

Посмотрите это https://github.com/lynndylanhurley/devise_token_auth/issues/573.

person Илья Клапаток    schedule 08.12.2020