1

大家。我正在我的平台(使用 Rails 和 Koala)上使用一个简单的 Facebook 身份验证系统,它几乎可以按预期工作。但是有一个关键的错误让我抓狂。

  1. 鉴于我没有登录我的平台,我没有注册,我还没有在我的 Facebook 个人资料上授权我的应用程序。
  2. 我去注册一个 Facebook 帐户
  3. Facebook 要求我登录
  4. 我成功登录
  5. Facebook 应用程序请求权限
  6. 我授权该应用程序
  7. 我被重定向到正确的 redirect_uri
  8. client.get_access_token(params[:code])考拉在这一步中失败了OAuthException: Code was invalid or expired. Session is invalid. This could be because the application was uninstalled after the session was created.

简而言之,Facebook 正在抱怨它刚刚提供的代码。以下是认证方法:

OAuth 的登录操作

  def login
    reset_session

    session[:facebook_client] = get_client

    redirect_to session[:facebook_client].url_for_oauth_code(:callback => FacebookAPI.oauth_callback_url, :permissions => "email, user_status, publish_stream, publish_actions")
  rescue => err
  end

回调动作

  def terminate
    client = session[:facebook_client]
    if client.nil?
      redirect_to '/', notice: 'Error on FacebookAPI'
    else
      access_token = client.get_access_token(params[:code]) if params[:code] # IT FAILS HERE
      # omitting the rest
  end
4

0 回答 0