Я не уверен, что это именно то, что вы ищете, но это простой вариант в Devise.
Если вы установите следующую опцию в config / initializers / devise.rb
config.timeout_in = 30. минут
тогда Devise должен истечь токен после 30 минут бездействия. Те же самые операции, которые Devise выполняет для аутентификации сеанса, должны также работать с токеном аутентификации.
Я использовал это в своем текущем проекте и протестировал его с помощью Timecop
it "should timeout without activity after 30 minutes" do
auth_token = @user.authentication_token
get "/frontend/users/#{@user.id}.json?auth_token=#{auth_token}"
response.status.should == 200
Timecop.travel(45.minutes.from_now)
get "/frontend/users/#{@user.id}.json?auth_token=#{auth_token}"
response.status.should == 401
Timecop.return
end
Кроме того, я не верю, что токен следует той же аналогии, что и комбинация пользователь / пароль, как упомянуто в одном из комментариев, поскольку вы не сохраните свой пароль в виде простого текста, но вы сделаете это с помощью своего токена. Я бы также рекомендовал сбрасывать токен после каждого выхода из системы.