注册设计后如何将用户重定向到登录表单?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了注册设计后如何将用户重定向到登录表单?相关的知识,希望对你有一定的参考价值。

我正在使用Devise来验证用户身份。但是,当用户注册时,他们不会被告知确认他们的帐户,他们只需要这样做。

在我的应用程序控制器中,我有以下内容:

class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception
  before_action :configure_permitted_parameters, if: :devise_controller?
  before_action :authenticate_user!

  protected

  def configure_permitted_parameters
    attributes = [:first_name, :last_name, :email]
    devise_parameter_sanitizer.permit(:sign_up, keys: attributes)
    devise_parameter_sanitizer.permit(:account_update, keys: attributes)
  end
end

在我的情况下,用户将被重定向回登录表单,但没有办法告诉他们检查他们的电子邮件。他们发现这一点的唯一时间是他们再次尝试进行身份验证,然后默认的devise gem告诉他们需要在继续之前确认他们的帐户。

我需要在用户注册后找出一种方法,但在他们尝试手动登录之前(有些人可能甚至没有这样做,因为缺少说明)。

答案

检查设计documentation。假设您已为路径设置路线。

# routes.rb
devise_for :users, :controllers => {:registrations => "registrations"}

# registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController

protected

  def after_sign_up_path_for(resource)
    new_page_path
  end
end
另一答案

只需覆盖Devise::RegistrationsController

# app/config/routes.rb
devise_for :users, :controllers => {:registrations => "my_registrations"}

class MyRegistrationsController < Devise::RegistrationsController
  protected
  # this method would normally sign the user in
  def sign_up(resource_name, resource)
    flash[:alert] = "You need to confirm your account."
  end

  def after_sign_up_path_for(resource)
    new_user_session_path 
  end
end

以上是关于注册设计后如何将用户重定向到登录表单?的主要内容,如果未能解决你的问题,请参考以下文章

验证注册表中的数据后,重定向到另一个页面以登录

如何将用户重定向到以前的URL在Laravel中注册后

Rails:登录或注册后设计重定向到存储位置?

开始页面上的 Django 注册表单,没有重定向到登录页面

django注册后如何将用户重定向到特定的url?

在 React 中登录/注册后重定向到邀请链接