2011-05-18 30 views
3

我有一個使用Rails 3和Devise開發的API。我正在使用令牌(token_authenticatable)來驗證從客戶端向API發出的請求。我希望能夠在請求中的用戶之間切換,以替換令牌。Rails中的設計和無狀態標記

我聽說過一個名爲stateless_token(boolean)的設置,但我無法弄清楚這個設置放在哪裏。有另一種方法嗎?

如果發現這裏的token_authenticatable:

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

如果對這裏的stateless_token發現信息:

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

+1

我的答案是否適合您? – 2011-05-27 05:11:03

回答

2

它應該是在路線文件您devise_for線的選項。

devise_for :users, :stateless_token => true 

讓我知道如果這樣的作品, 在這種page of documentation for devise它說,「TokenAuthenticatable添加以下選項devise_for:」無國籍令牌是其中之一。

另外這裏的devise_for documentation

4

一個鏈接也可以編輯該文件/config/initializers/devise.rb和put(或去掉註釋,如果已經存在)下面一行:

config.stateless_token = true 
+1

如其他地方所述,現在已棄用。使用config.skip_session_storage = [:token_auth]選項 – dnstevenson 2012-09-06 15:37:22

+0

感謝您指出,當我回復時,它不是當時:) – cvbarros 2012-09-10 20:28:05

13

stateless_token截至目前已棄用。這是新的形式(它允許更多的認證策略爲無狀態):

# config/initializers/devise.rb 
config.skip_session_storage = [:token_auth] 
+0

隨着Devise 2.1.3,Rails 3.1.1我收到錯誤消息:'undefined method 'stateless_token ='爲Devise:Module'。這一改變修復了它。謝謝! – Max 2012-07-03 12:52:28