需要密码才能使用法术更改用户信息

时间:2011-09-14 14:48:32

标签: ruby-on-rails authentication

我有一个带编辑页面的简单用户模型。目前,您可以更改电子邮件和密码(使用密码确认),但我目前不要求您在更改任何信息之前再次输入密码。

我有一个前置过滤器,要求您登录以及过滤前,以确保您只能编辑自己的个人资料。但是,对于公共计算机,我想通过让用户输入密码来重新验证用户。

我正在使用sorcery来支持我的身份验证。我该怎么做呢登录后我没有看到任何检查密码的方法。下面是我当前的users_controller

class UsersController < ApplicationController

  before_filter :require_login, :only => [ :edit, :update ]
  before_filter :correct_user, :only => [ :edit, :update ]

  def new
    @user = User.new
  end

  def create
    @user = User.new(params[:user])
    if @user.save
      redirect_to root_url, :notice => "Signed up!"
      login_user(@user)
    else
      render :new
    end
  end

  def edit
    @user = User.find(params[:id])
  end

  def update
      @user = User.find(params[:id])
      if @user.update_attributes(params[:user])
        flash[:success] = "Profile updated."
        redirect_to root_url
      else
        render 'edit'
      end
    end

  private

  def correct_user
        @user = User.find(params[:id])
        redirect_to(root_path) unless current_user == @user
  end

end

1 个答案:

答案 0 :(得分:2)

我在Sorcery的github页面上打开了一个问题。听起来创建者将来会打开一个名为validate_credentials()的方法。

来源:https://github.com/NoamB/sorcery/issues/34#issuecomment-2108845