我现在的 login 方法为
def create
@user = User.find_by_email(params[:session][:email].downcase)
if @user && @user[:locked]
flash[:error] = '该账户已锁定,请先解锁。'
redirect_to new_session_path
elsif @user && !@user[:locked] && @user.authenticate(params[:session][:password]) && @user[:last_login].nil?
sign_in @user
flash[:notice] = "第一次登录,请先修改密码。"
redirect_to edit_password_users_path(@user)
elsif @user && !@user[:locked] && @user.authenticate(params[:session][:password]) && !@user[:last_login].nil?
@user.update_attributes(:failed_attempts=> 0, :last_login => Time.now)
sign_in @user
flash[:success] = "用户登录成功。"
redirect_back_or current_users_path
else
flash[:error] = '邮箱或者密码错误。'
redirect_to new_session_path
end
end
我这样写 grape api 不知道对不对?
post 'login' do
@user = User.find_by_email(params[:session][:email].downcase)
if @user && @user[:locked]
error!({"error" => "该账户已锁定,请先解锁。" }, 400)
elsif @user && !@user[:locked] && @user.authenticate(params[:session][:password]) && @user[:last_login].nil?
sign_in @user
redirect "/edit_password"
elsif @user && !@user[:locked] && @user.authenticate(params[:session][:password]) && !@user[:last_login].nil?
@user.update_attributes(:failed_attempts=> 0, :last_login => Time.now)
sign_in @user
redirect "/current"
else
error!({"error" => "邮箱或者密码错误。" }, 400)
end
end
求指点。。。。。。