当前位置: 首页 > 面试题库 >

Play框架附加了#_ = _以通过OAuth2在Facebook身份验证后重定向吗?

宋安晏
2023-03-14
问题内容

在使用Play Framework调用OAuth2 ::
retrieveAccessToken()之后,我正在执行简单的重定向。我将有趣的字符附加到了我从未放过的URL上,因此最终结果如下所示:

http://本地主机:9000 /#_ = _

#_ = _来自哪里?这是路由文件中的路由定义:

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());
}

编辑:

根据此页面,Facebook最近更改了其API,以包含
= 如果request_uri为空,问题是…我的request_uri已被明确设置?


问题答案:

这是在安全更新后添加的。

来自Facebook开发人员博客:

会话重定向行为的更改

本周,#_=_当此字段保留为空白时,我们开始将片段添加到redirect_uri。请确保您的应用可以处理此行为。



 类似资料:
  • 我正在尝试通过Google Open Auth 2.0在我的MVC 3 Web应用程序中实现身份验证。我已经成功地形成了URL请求URL,它看起来像这样: https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/userinfo.emailhttps://www.googleapis.com/a

  • 我正在laravel中创建一个多身份验证系统,其中有两种类型的用户:管理员(由我创建)和用户(使用本地laravel身份验证系统)。 如果我以用户身份登录,当我尝试访问登录页面时,当我已经登录,它会将我重定向回仪表板,但如果我以管理员身份登录,当我再次访问管理员登录页面时,它会让我再次登录,尽管已经作为管理员登录。 以下是我的重定向身份验证类代码: 有人能解释一下发生了什么事吗?

  • 在本章中,我们将使用Firebase Facebook身份验证对用户进行身份验证。 第1步 - 启用Facebook身份验证 我们需要打开Firebase信息中心,然后在侧边菜单中点击Auth 。 接下来,我们需要在标签栏中选择SIGN-IN-METHOD 。 我们将启用Facebook身份验证并保持打开状态,因为我们需要在完成第2步时添加App ID和App Secret 。 第2步 - 创建F

  • 我目前正在使用FirebaseAuth和web小部件库firebaseui web开发基于VueJS的登录流原型。 成功认证后(无论是< code>password还是< code>google provider ),小部件加载栏会不断重复,firebaseui-web不会触发其< code > signinseccesswithauthresult 回调。但是对< code > identity

  • 问题内容: 我有以下工作代码可通过本地护照策略进行身份验证: 但是,理想情况下,我想从一条快速路径处理错误和成功消息,而不是重定向到两条额外的路径。 这可能吗?我尝试使用“自定义回调”,但由于某种原因似乎在序列化用户时出错。 问题答案: 您可以使用自定义回调,例如: 在err对象中,您可以找到所有必需的错误,这些错误在身份验证时出现。