小编Pat*_*rre的帖子

Rails - 如何覆盖设计SessionsController以在用户登录时执行特定任务?

使用Devise管理用户会话/注册我需要每次用户登录时,以及在通过设计重定向到主页以进行连接之前执行特定任务(例如,更新此特定用户的users表中的某些字段)用户.

我是否必须覆盖设计SessionsController,如果是,如何?

ruby-on-rails devise

40
推荐指数
3
解决办法
4万
查看次数

未定义的方法skip_confirmation! - 设计,omniauth

尝试使用devise,omniauth(包括facebook-omniauth)在heroku上托管的应用程序上设置facebook身份验证.调用facebook API有效,但我无法在回调后跳过确认步骤.

我也跟着上omn​​iauth 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)

ruby-on-rails devise omniauth

7
推荐指数
1
解决办法
4952
查看次数

标签 统计

devise ×2

ruby-on-rails ×2

omniauth ×1