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

2024-05-24

使用 Devise 管理用户会话/注册,每次用户登录时,以及在他被 devise 重定向到连接的主页之前,我需要执行特定任务(例如,更新该特定用户的用户表中的某些字段)用户。

我是否必须重写 devise SessionsController,如果是,如何重写?


或者,您可以创建自己的会话控制器

class SessionsController < Devise::SessionsController
  def new
    super
  end

  def create
    self.resource = warden.authenticate!(auth_options)
    set_flash_message(:notice, :signed_in) if is_navigational_format?
    sign_in(resource_name, resource)
    if !session[:return_to].blank?
      redirect_to session[:return_to]
      session[:return_to] = nil
    else
      respond_with resource, :location => after_sign_in_path_for(resource)
    end
  end
end

And in routes.rb add:

devise_for :users, controllers: {sessions: "sessions"}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails - 如何重写设计 SessionsController 以在用户登录时执行特定任务? 的相关文章

随机推荐