2016-05-04 6 views
1

ヘッダーを介して別のURLにOauthアクセストークンを渡そうとしています(別のドメインであってもなくてもよい)。許可ヘッダをレールに入れてredirect_toするには

HAMLコード -

%a{:href => "/external_redirect?user_id=#{@user['id']}", :id => 'external_url' } 

コントローラ -

def external_redirect 

external_url = "http://external.abc.com:3008/consumerlogin?user_id=#{params["user_id"]}" 

response.headers["Authorization"] = "OAuth #{cookies[ :access_token ]}" 

redirect_to external_url 

end 

私はこの権利をやっていますか?ヘッダーがexternal_urlに送信されていません。

答えて

0

私の問題は、送信されていないヘッダーではなく、ヘッダー値であると思います。あなたのアクセストークンを提供するためにはOAuthのヘッダーは次のようになります。

Authorization: Bearer ACCESS-TOKEN 

あなたが代わりにBearerOAuth持っています。コードを次のように変更してください。

response.headers["Authorization"] = "Bearer #{cookies[ :access_token ]}" 
0

リダイレクトにより、クライアントは新しい要求を開始します。

ブラウザがリダイレクトの処理を開始するまで応答ヘッダーがあります。

その後、ブラウザが発信した新しいリクエストにこれらのヘッダーを渡す/転送することはできません。

関連する問題