使用Devise管理用户会话/注册我需要每次用户登录时,以及在通过设计重定向到主页以进行连接之前执行特定任务(例如,更新此特定用户的users表中的某些字段)用户.
我是否必须覆盖设计SessionsController,如果是,如何?
尝试使用devise,omniauth(包括facebook-omniauth)在heroku上托管的应用程序上设置facebook身份验证.调用facebook API有效,但我无法在回调后跳过确认步骤.
我也跟着上omniauth GitHub的教程:https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview
并阅读并试图实现这一点: 设计skip_confirmation!不工作
但是我的heroku日志中不断出现以下错误:
NoMethodError (undefined method `skip_confirmation!')
Run Code Online (Sandbox Code Playgroud)
以下是我的devise.rb的外观:
config.omniauth :facebook, "API_KEY", "API_SECRET"
{:strategy_class => OmniAuth::Strategies::Facebook,
:scope => 'email, offline_access', :client_options => {:ssl => {:ca_file => '/usr/lib/ssl/certs/ca-certificates.crt'}}}
Run Code Online (Sandbox Code Playgroud)
这是我的omniauth_callbacks_controller.rb:
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
def facebook
# You need to implement the method below in your model (e.g. app/models/user.rb)
@user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)
if @user.persisted?
sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated
set_flash_message(:notice, :success, :kind => "Facebook") if is_navigational_format?
else
session["devise.facebook_data"] = …Run Code Online (Sandbox Code Playgroud)