2

我在我的应用程序中使用设计作为身份验证。设计..第一次登录后应该要求更改密码

我需要在设计中实现功能。首次登录后,用户应该要求更改密码。

我通过模型

after_create :update_pass_change 

    def update_pass_change 
    self.pass_change = true 
    self.save 
    end 
+0

重定向用户第一次登录 – RSB

+0

肯定,但有后更改密码页面关于路线的问题。你能告诉我如何处理这种情况。 – sheetal

回答

4

检查current_user.sign_in_count的方式来判断第一次登录尝试。

你会做这样的事情。

class ApplicationController < ActionController::Base 
    def after_sign_in_path_for(resource) 
    if current_user.sign_in_count == 1 
     edit_passwords_path 
    else 
     root_path 
    end 
    end 
end 

您需要执行编辑/更新密码操作。

class PasswordsController < ApplicationController 
    def edit 
    end 

    def update 
    if current_user.update_with_password(user_params) 
     flash[:notice] = 'password update succeed..' 
     render :edit 
    else 
     flash[:error] = 'password update failed.' 
     render :edit 
    end 
    end 

    private 
    def user_params 
     params.require(:user).permit(:current_password, :password, :password_confirmation) 
    end 
end 

的config/routes.rb中

resource :passwords 

应用程序/视图/密码/ _form.html.erb

<%= form_for current_user, url: passwords_path do |f| %> 
    current_password:<br /> 
    <%= f.password_field :current_password %><br /> 
    password:<br /> 
    <%= f.password_field :password %><br /> 
    password_confirmation:<br /> 
    <%= f.password_field :password_confirmation %><br /> 
    <br /> 
    <%= f.submit %> 
<% end %> 
相关问题