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 %> 
相關問題