我有一个带编辑页面的简单用户模型。目前,您可以更改电子邮件和密码(使用密码确认),但我目前不要求您在更改任何信息之前再次输入密码。
我有一个前置过滤器,要求您登录以及过滤前,以确保您只能编辑自己的个人资料。但是,对于公共计算机,我想通过让用户输入密码来重新验证用户。
我正在使用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
答案 0 :(得分:2)
我在Sorcery的github页面上打开了一个问题。听起来创建者将来会打开一个名为validate_credentials()的方法。
来源:https://github.com/NoamB/sorcery/issues/34#issuecomment-2108845