私はdeviseで認証された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 分間非アクティブになった後でも、セッションは期限切れになりません。ここで何が欠けているか/間違っているかを理解するために助けが必要です。どんな助けでも大歓迎です。
前もって感謝します。