我想为我的 Facebook OAuth2 集成提供一个动态重定向 URL。例如,如果我的重定向 URL 在我的 Facebook 应用程序中是这样的:
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
以下所有内容,但无济于事:
- 对我网站的请求的实际 URL
- 对我的站点的请求的 URL,减去
code
参数 - 我的 Facebook 应用程序配置中指定的 URL
是否支持自定义重定向 URI 参数?如果是这样,我是否正确指定它们?如果没有,我会被迫设置一个 cookie,还是有更好的模式来为我的网站提供上下文?