2012-06-12 7 views
6

現在、deviseはURL経由で認証トークンを受け入れるように構成されており、カールは、私はからTOKENVALUEを得るために工夫設定できるのか、今HTTPヘッダーで認証トークンを受け入れるように設定するにはどうすればよいですか?

curl 'http://localhost/index.json?auth_token=TOKENVALUE' 

私が代わりにURLのHTTPヘッダー経由TOKENVALUEを渡したいのですがうまく機能します HTTPヘッダーまたはのいずれか?そのような両方の上記および以下のカール要求が動作すること:this railscastに示すよう

curl 'http://localhost/index.json' -H 'Authorization: Token token="TOKENVALUE"' 

答えて

1

まず、あなたが考案は、基本認証を経て認証トークン認証を行うことができますあなたのconfig /初期化子/ devise.rb

# Configuration for :token_authenticatable 
# Defines name of the authentication token params key 
config.token_authentication_key = 'AUTH-TOKEN' 
1

にそれのために設定を追加することができ、あなたのgemfile https://github.com/stvp/devise_header_tokenにこれを追加参照してください。あなたがsourceを見れば、あなたはこれを参照してくださいよ:

は、ヘッダーのために、ユーザー名と 空白のパスワードとしてトークンを渡し基本認証を使用することができます。クライアントによってはパスワードが必要な場合がありますので、「X」には というパスワードを渡すことができます。単に無視されます。

1

物事は、変更されていない考案するために追加されてきました。別の宝石devise-token_authenticatableに抽出されました。私はその宝石を使用しており、質問をした人物と同じことをしたいと思っています。

私は私が私のconfig /初期化子/ devise.rbでこれを設定しなければならなかった考え出し:

config.http_authenticatable = true

私はカールを経由して、それを試してみました、それが働きました。私のRSpecのテストでは、私は次のようにHTTPヘッダーにトークンを置くことができました:これはそこに誰かに役立ちます

user = FactoryGirl.create(:user) 
header = ActionController::HttpAuthentication::Token.encode_credentials(
    user.authentication_token) 
get "/api/v1/your_url", 
    { }, 
    { 
     'Accept' => 'application/json', 
     'Authorization' => header 
    } 

願っています!

関連する問題