在使用Play Framework调用OAuth2 :: retrieveAccessToken()后,我正在进行简单的重定向。我有一些有趣的字符附加到我从未放在那里的URL,所以最终结果如下:
#_ = _究竟来自哪里?这是路线文件中的路线定义:
GET / Application.index
以下是处理Facebook身份验证的控制器的代码段:
public static void facebookConnect() {
OAuth2 facebook = new OAuth2(
"https://graph.facebook.com/oauth/authorize",
"https://graph.facebook.com/oauth/access_token",
"2#############6",
"c##############################2"
);
if(OAuth2.isCodeResponse()) {
OAuth2.Response oauthResponse = facebook.retrieveAccessToken(facebookAuthUrl());
if(oauthResponse.error == null) {
//... Somewhere here, something is causing #_=_ to be appended to the URL?
Application.index();
}
}
facebook.retrieveVerificationCode(facebookAuthUrl());
}
编辑:
根据this page,如果request_uri为空,Facebook最近更改了他们的API以包含 = ,问题是...我的request_uri已经明确设置了?
答案 0 :(得分:21)
这是在安全更新后添加的。
更改会话重定向行为
本周,我们开始向redirect_uri添加片段
#_=_
当此字段留空时。请确保您的应用可以处理 这种行为。
答案 1 :(得分:1)
也许这些角色来自facebook回调。我得到了像
这样的FB回调localhost:9000?someparams#code=verylongcodefromfacebook
我可以通过在请求访问令牌之前清理params来摆脱#。