0

Box API V2 ( https://github.com/youpdidou/omniauth-box/ )で動作する gem を作成しました。開発中にテストしました。必要に応じて認証を作成し、DBに記録しますが、処理の最後にマイページへのリダイレクトでエラーが発生します(下記ログ参照)。

私のアプリは他のプロバイダー (私は omniauth-twitter と omniauth-yammer gem を使用して Twitter と Yammer を持っています) で正常に動作するため、エラーは私の Gem に欠けている何か (更新トークンに関連する何か?) が発生する可能性があるようです。 、または、Box 認証プロセスには 2 つのステップがあるという事実に関連している可能性があります (1 つは資格情報用、1 つはファイルへのアクセスを承認するため - 参照http://developers.box.com/oauth/ )...

ここで何が欠けていますか?これをデバッグする方法と、何を見ればよいですか?

(box) Callback phase initiated.


Started GET "/auth/box/callback?state=7d550f7c0d367d4af73ca3a1d82985c78730126887e3e813&code=fV19In0Elnq1GNX61t32N1h8anezbTiH" for 127.0.0.1 at 2013-01-30 00:28:18 -0800
Processing by AuthenticationsController#create as HTML
  Parameters: {"state"=>"7d550f7c0d367d4af73ca3a1d82985c78730126887e3e813", "code"=>"fV19In0Elnq1GNX61t32N1h8anezbTiH", "provider"=>"box"}
  User Load (0.4ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
  Authentication Load (0.5ms)  SELECT `authentications`.* FROM `authentications` WHERE `authentications`.`user_id` = 1 AND `authentications`.`provider` = 'box' AND `authentications`.`uid` = '288560' LIMIT 1
   (0.1ms)  BEGIN
  SQL (0.3ms)  INSERT INTO `authentications` (`created_at`, `oauth_secret`, `oauth_token`, `provider`, `uid`, `updated_at`, `user_id`) VALUES ('2013-01-30 08:28:19', NULL, NULL, 'box', '288560', '2013-01-30 08:28:19', 1)
   (1.5ms)  COMMIT
   (0.1ms)  BEGIN
   (0.4ms)  UPDATE `authentications` SET `oauth_token` = 'cZga3uA89eslNAURbJlZaySukIs9IxTF', `updated_at` = '2013-01-30 08:28:19' WHERE `authentications`.`id` = 26
   (0.5ms)  COMMIT
Redirected to http://localhost:3000/services
Completed 302 Found in 14ms (ActiveRecord: 3.7ms)
[2013-01-30 00:28:19] ERROR Errno::ECONNRESET: Connection reset by peer
    /Users/alex/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/webrick/httpserver.rb:80:in `eof?'
    /Users/alex/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/webrick/httpserver.rb:80:in `run'
    /Users/alex/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
4

2 に答える 2

1

これはボックスとは関係ないと思いますが、Rails 自体には関係ありません 以下を参照し てください。

回答を含めるように編集: @Matt Smith から引用

私の簡単な推測では、セッションに問題があり、protect_from_forgery が起動しているようです。

私は同様の問題を抱えていて、数日間頭を壁にぶつけました。IDだけではなく、オブジェクト全体をセッションオブジェクトに割り当てていたことが判明しました。簡単に言うと、GET 以外のリクエストは、protect_from_forgery をトリガーするものです。

于 2014-04-22T13:26:28.793 に答える