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?方法不会以与设备存储在数据库中的加密密码相同的格式加密密码,任何帮助都将不胜感激。
答案 0 :(得分:2)
该代码适用于创建会话。只需检查您是否正确创建了用户!
在rails控制台中执行此操作
User.create({email:"anything@gmail.com",password:"anything"})
User.find(type the id of new user).valid_password?("anything")
如果返回true,则说明您没有正确创建用户。检查您创建用户的方法。