2016-05-04 8 views
1

versuchen, Oauth Access Token über Header zu einer anderen URL übergeben (Mai oder möglicherweise nicht eine andere Domäne).Wie kann ich Redirect_to mit Autorisierungsheadern in Schienen

haml code-

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

Controller -

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 

Bin ich dieses Recht zu tun? Der Header wird nicht an die externe_url gesendet.

Antwort

0

Ich denke, das Problem besteht nicht darin, dass die Header nicht gesendet werden, sondern mit Ihren Headerwerten. OAuth Header Ihre Zugriffstoken zur Verfügung zu stellen wie folgt aussieht:

Authorization: Bearer ACCESS-TOKEN 

Sie haben OAuth statt Bearer. Versuchen Sie, Ihren Code in:

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

Die Umleitung wird dazu führen, dass der Client eine neue Anfrage starten.

Sie haben die Antwortheader bis zu dem Moment, in dem der Browser mit der Weiterleitung beginnt.

Nach diesem Moment können Sie diese Header nicht an die neue Anfrage übergeben, die vom Browser stammt.