0

アプリケーションで奇妙なエラーが発生しました。Facebookでサインインしようとすると発生し、Facebookよりもアプリが要求する権限を拒否します。

スタック トレースは次のとおりです。

Started GET "/users/auth/facebook/callback?error=access_denied&error_code=200&error_description=Permissions+error&error_reason=user_denied&state=426366bb3ac72ca4ad2b8b3fea5d5c7f628d6463b5df64a6" for 95.51.182.141 at 2013-09-05 20:55:24 +0000
(facebook) Callback phase initiated.
(facebook) Authentication failure! invalid_credentials: OmniAuth::Strategies::OAuth2::CallbackError, OmniAuth::Strategies::OAuth2::CallbackError
Processing by Devise::OmniauthCallbacksController#failure as HTML
Parameters: {"error"=>"access_denied", "error_code"=>"200", "error_description"=>"Permissions error", "error_reason"=>"user_denied", "state"=>"426366bb3ac72ca4ad2b8b3fea5d5c7f628d6463b5df64a6"}
Completed 500 Internal Server Error in 2ms

NoMethodError (undefined method `to_sym' for nil:NilClass):
   vendor/bundle/ruby/1.9.1/gems/mobile-fu-1.1.1/lib/mobile-fu.rb:165:in `mobile_exempt?'
   vendor/bundle/ruby/1.9.1/gems/mobile-fu-1.1.1/lib/mobile-fu.rb:114:in `set_mobile_format'
   vendor/bundle/ruby/1.9.1/gems/mobile-fu-1.1.1/lib/mobile-fu.rb:89:in `set_request_format'
(...)

面白いのは、mobile-fu コードを調べたところ、nil である (明らかにすべきではない) がparams[:action].

4

1 に答える 1

0

私はもう少し深く掘り下げましたが、params[:action] が設定されていないことがあります。とにかく、それは divise <-> mobile-fu ラインの問題か、それが継ぎ目です。

これはgithubの問題です(現在は閉鎖されています):

https://github.com/benlangfeld/mobile-fu/issues/22#issuecomment-26775053

修正は私が望むものではありませんが、おそらく params[:action] (および params[:controller]) が設定されていない理由があります

于 2013-10-22T20:52:51.360 に答える