Токены Devise и Stateless в Rails

У меня есть API, который я разработал с помощью Rails 3 и Devise. Я использую токены (token_authenticable) для аутентификации запросов к API от клиента. Я хочу иметь возможность переключаться между пользователями в запросах, просто заменяя токен.

Я слышал о параметре под названием :stateless_token (логическое значение), но не могу понять, куда его поместить. Есть ли другой способ?

Если вы нашли здесь token_authenticable:

https://github.com/plataformatec/devise/blob/master/lib/devise/strategies/token_authenticatable.rb

Если вы нашли информацию о stateless_token здесь:

http://rdoc.info/github/plataformatec/devise/master/Devise/Models/TokenAuthenticable


person Jonathan Clark    schedule 18.05.2011    source источник


Ответы (3)


stateless_token на данный момент устарел. Это новая форма (она позволяет большему количеству стратегий аутентификации быть без гражданства):

# config/initializers/devise.rb
config.skip_session_storage = [:token_auth]
person Sergio Tulentsev    schedule 04.05.2012
comment
С Devise 2.1.3, Rails 3.1.1 я получал сообщение об ошибке: undefined method stateless_token=' for Devise:Module`. Это изменение исправило это. Спасибо! - person Max; 03.07.2012

Вы также можете отредактировать файл /config/initializers/devise.rb и добавить (или раскомментировать, если он уже есть) следующую строку:

config.stateless_token = true
person cvbarros    schedule 09.07.2011
comment
Как отмечалось в другом месте, теперь это устарело. Используйте параметр config.skip_session_storage = [:token_auth] - person dnstevenson; 06.09.2012
comment
Спасибо, что указали на это, это было не тогда, когда я ответил :) - person cvbarros; 11.09.2012

Это должна быть опция в вашей строке devise_for в файле маршрутов.

devise_for :users, :stateless_token => true

Дайте мне знать, если это сработает. На этой странице документации для devise в нем говорится, что «TokenAuthenticable добавляет следующие параметры в devise_for:», причем токен без сохранения состояния является одним из них.

Также здесь есть ссылка на документацию по devise_for

person Devin M    schedule 19.05.2011