Omniauth Facebook的before_filter?

对于设计,有一个非常容易使用的Before_filter在控制器中使用。

由于某种原因,我不能让这个为Omniauth_facebook Gem工作。 我在Facebook Omniauth上关注了Railscast

before_filter :authenticate def authenticate redirect_to :login unless User.find_by_provider_and_uid(auth["provider"], auth["uid"]) end end 

但是我收到一个错误:

  NameError in PostsController#new undefined local variable or method `auth' for # 

有什么想法吗?

它找不到名为auth的变量。 所以你需要检查auth变量是否在某处初始化。 根据我的观点,OmniAuth Facebook gem将经过身份validation的数据存储在请求环境中。 请参考: https : //github.com/mkdynamic/omniauth-facebook#auth-hash 。

before_filter将在提供请求之前执行。 所以可能导致问题。

希望有所帮助!

我认为你所使用的auth变量是request.env [“omniauth.auth”]