如果启用了 oauth 2.0,fb:login-button 的注册 URL 参数将失败

Posted

技术标签:

【中文标题】如果启用了 oauth 2.0,fb:login-button 的注册 URL 参数将失败【英文标题】:registration-url parameter fails for fb:login-button if oauth 2.0 is enabled 【发布时间】:2011-11-04 10:23:12 【问题描述】:

我正在尝试让 Facebook 登录的注册流程正常工作。这是一个简单的例子:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
    <head>
      <title>My Facebook Login Page</title>
    </head>
    <body>
      <script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>

      <div id="fb-root"></div>

      <script type="text/javascript">
         FB.init( 
            appId:'xxxxxxxxxxx', 
            cookie:true, 
            status:true, 
            xfbml:true,
            channelUrl  : 'http://<myWebSite>/channel.html',
            oauth:true
         );
      </script>

     <fb:login-button registration-url="http://<myWebSite>/register"/>
    </body>
 </html>

(上面我唯一替换的是网站和appID)

如果我这样尝试,登录按钮会显示,但单击它会导致 FireBug 在浏览器日志中报告“未知状态:未定义”。如果我删除'oauth = true'行,它会起作用。我正在尝试遵守新的 oauth 2.0 标准,所以我想保留它。还有其他人遇到过这个吗?看起来如果这是一个错误,它会很早就被发现。

【问题讨论】:

我也看到了这个问题。一旦我删除了 oauth: true 就可以了。 此处提交了一个错误:developers.facebook.com/bugs/223444304375753 可能很笨——你在应用设置中启用了迁移吗? 【参考方案1】:

'registration-url' 参数不再支持,请查看它的文档。 http://developers.facebook.com/docs/reference/plugins/login/

只需检查用户是否通过 JS-SDK 登录

【讨论】:

以上是关于如果启用了 oauth 2.0,fb:login-button 的注册 URL 参数将失败的主要内容,如果未能解决你的问题,请参考以下文章

Java中是否有OAuth 2.0 Provider实现? (不是oauth客户)[关闭]

FB.login 如果用户之前连接过应用程序,则区分成功登录和取消

Google OAuth 2.0“错误”:“redirect_uri_mismatch”

突然在 YouTube V3 API 上获得 Oauth 2.0 同意的 403(禁止)

OAuth 2.0 刷新令牌是不是完全过期?

OAuth 2.0、Swagger 和 DotNet 核心