Jac*_*cob 68 oauth-2.0 facebook-oauth
我想为我的Facebook OAuth2集成提供动态重定向网址.例如,如果我的Facebook应用程序中的重定向URL是这样的:
http://www.mysite.com/oauth_callback?foo=bar
我希望特定请求的重定向URL是这样的,所以在服务器上,我有一些关于如何处理身份验证代码的上下文:
http://www.mysite.com/oauth_callback?foo=bar&user=6234
在提交授权对话框后,我的重定向被调用,然后我返回一个身份验证代码,但是当我尝试获取访问令牌时,我从Facebook收到OAuthException错误.我的请求看起来像这样(为了清晰起见,添加了换行符):
https://graph.facebook.com/oauth/access_token ?client_id=MY_CLIENT_ID &redirect_uri=http%3A%2F%2Fwww.mysite.com%2Foauth_callback%3Ffoo%3Dbar%26user%3D6234 &client_secret=MY_SECRET &code=RECEIVED_CODE
我的所有参数都是URL编码的,代码看起来有效,所以我唯一的猜测是问题参数是我的redirect_uri.我尝试过设置redirect_uri
以下所有内容,但无济于事:
code
参数是否支持自定义重定向URI参数?如果是这样,我是否正确指定它们?如果没有,我会被迫设置一个cookie,还是有一些更好的模式来为我的网站提供上下文?
Jac*_*cob 94
我想出了答案; 您可以state
向请求添加参数,而不是向重定向网址添加其他参数https://www.facebook.com/dialog/oauth
:
https://www.facebook.com/dialog/oauth ?client_id=MY_CLIENT_ID &scope=MY_SCOPE &redirect_uri=http%3A%2F%2Fwww.mysite.com%2Foauth_callback%3Ffoo%3Dbar &state=6234
然后将该状态参数传递给回调URL.
Man*_*era 12
如果出于任何原因,你不能使用雅各布建议的选项,因为它是我的情况,你可以在传递它之前对你的参数进行urlencoderedirect_uri
,它会起作用,即使它有一个完整的查询字符串foo=bar&morefoo=morebar
.
归档时间: |
|
查看次数: |
46162 次 |
最近记录: |