user.valid_password 的设计 gem 不起作用
user.valid_password of devise gem does not work
def create
user_password = params[:session][:password]
user_email = params[:session][:email]
user = user_email.present? && User.find_by(email: user_email)
if user and user.valid_password? user_password
sign_in user
user.generate_authentication_token!
user.save
render json: user, status: 200, location: [:api, user]
else
#render json: { errors: "Invalid email or passwords"}, status: 422
render json: { errors: "Invalid email or passwords"}, status: 422
end
结束
用户登录后无法登录,好像是valid_password?方法不会以与设计存储在数据库中的加密密码相同的格式加密密码,任何帮助将不胜感激。
该代码适用于创建会话。只需检查您是否正确创建了用户!
在您的 rails 控制台中执行此操作
User.create({email:"anything@gmail.com",password:"anything"})
User.find(type the id of new user).valid_password?("anything")
如果此 returns 为真,那么您没有正确创建用户。检查您创建用户的方法。
def create
user_password = params[:session][:password]
user_email = params[:session][:email]
user = user_email.present? && User.find_by(email: user_email)
if user and user.valid_password? user_password
sign_in user
user.generate_authentication_token!
user.save
render json: user, status: 200, location: [:api, user]
else
#render json: { errors: "Invalid email or passwords"}, status: 422
render json: { errors: "Invalid email or passwords"}, status: 422
end
结束
用户登录后无法登录,好像是valid_password?方法不会以与设计存储在数据库中的加密密码相同的格式加密密码,任何帮助将不胜感激。
该代码适用于创建会话。只需检查您是否正确创建了用户!
在您的 rails 控制台中执行此操作
User.create({email:"anything@gmail.com",password:"anything"})
User.find(type the id of new user).valid_password?("anything")
如果此 returns 为真,那么您没有正确创建用户。检查您创建用户的方法。