1

みんな。私は自分のプラットフォーム (Rails と Koala を使用) で単純な Facebook 認証システムを使用していますが、ほぼ期待どおりに動作しています。しかし、私を狂わせる重大なバグが 1 つあります。

  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