相关疑难解决方法(0)

手动传递signed_pa​​rameters后的Facebook NoAuthorizationError

我在试图让客户端登录工作时遇到了很多问题,所以我将冒昧地引用其他大量问题......没有一个问题导致我的答案对我有用.

CONTEXT

  • 服务器端登录工作正常
  • 使用JS SDK的客户端登录在Safari*上运行正常(未在Firefox或IE或移动非Chrome中测试),但在Chrome中没有,这是这个问题的关键(我的大多数用户都使用Chrome,因此它超级重要)
  • 宝石版本:
    • 红宝石(2.1.2)
    • 铁轨(4.1.1)
    • oauth(0.4.7)
    • oauth2(1.0.0)
    • omn​​iauth(1.2.2)
    • omn​​iauth-facebook(2.0.0)
    • omn​​iauth-oauth2(1.2.0)
  • 这适用于处于开发模式的应用程序,作为开发人员,我肯定有权登录

*工作正常,我的意思是如果你只是复制了Ryan Bates的RailsCast(http://railscasts.com/episodes/360-facebook-authentication?view=asciicast)中的代码,它可以在没有任何其他任何东西的情况下工作


TL:DR; 我传递了以下应该有效的网址...

`http://localhost:3000/auth/facebook/callback?signed_request=ASDF.JOUYOUY`
// Obviously signed_request is a much longer string
Run Code Online (Sandbox Code Playgroud)

...但我仍然得到错误 OmniAuth::Strategies::Facebook::NoAuthorizationCodeError (must pass either a代码parameter or a signed request (viasigned_request parameter or afbsr_XXXcookie)):


故障排除日期+许多其他错误/潜在解决方案的概述

下面的代码解决方案基于Ryan Bates的RailsCast的代码:

$('#sign_in').click (e) ->
  e.preventDefault()
  FB.login (response) ->
    window.location = '/auth/facebook/callback' if response.authResponse
Run Code Online (Sandbox Code Playgroud)

障碍#1:第三方cookie被阻止了吗?

不会导致错误,只是使它无法将应用程序连接到Facebook.

首先将您的应用程序连接到Facebook需要您使用Facebook登录,因为代码FB.login (response) -> window.location = "/auth/facebook/callback" if response.authResponse取决于其有效性authResponse及其包含的signedRequest …

javascript facebook omniauth facebook-javascript-sdk omniauth-facebook

6
推荐指数
1
解决办法
791
查看次数

即使用户已登录,FB.getLoginStatus也会返回"未知"状态

我启用了第三方cookie,这不是问题所在.我正在使用google Chrome,facebook javascript SDk version 2.5,当我登录时,一切正常工作,但当我退出并尝试重新登录时,它又回来了status: 'unknown'

facebook facebook-graph-api facebook-javascript-sdk

3
推荐指数
1
解决办法
2182
查看次数