[英]Change Devise Password Manually
好吧,我擁有的是我為客戶服務團隊構建的API。 我們可以創建帳戶和用戶,一切都很好。
但是當我構建它以更改用戶密碼時,它會更改它們但不會登錄。
創建一個帳戶我有這個編碼:
def create
params["user"].delete("user_id") // this is being sent in from the api..
params["user"]["encrypted_password"] = Password.new(Password.create(params["user"]["password"]))
params["user"]["password"] = Password.new(Password.create(params["user"]["password"]))
user = User.create(params["user"])
if user
render json: {company: user}, status: 200
else
render json: {message: "Problem creating company"}, status: 500
end
end
這很有效
但是當我去更新用戶時:
params["user"]["encrypted_password"] = Password.new(Password.create(password))
params["user"]["password"] = Password.new(Password.create(password))
不能正常工作
def update
user = User.find(params[:id])
password = params["user"].delete("user_password")
if password && !password.blank?
puts password
params["user"]["encrypted_password"] = Password.new(Password.create(password))
params["user"]["password"] = Password.new(Password.create(password))
end
if user.update_attributes(params["user"])
render json: {company: user}, status: 200
else
render json: {message: "Problem updating company"}, status: 500
end
end
更改后不會登錄
你不需要以這種方式設置密碼,只需設置密碼和密碼確認和設計即可完成剩下的工作,不用擔心,它不會以純文本形式存儲,設計會自動轉換為純文本在將其保存到數據庫之前將其轉換為哈希密碼
def update
user = User.find(params[:id])
password = params["user"].delete("user_password")
if password && !password.blank?
user.password = user.password_confirmation = password
end
if user.save
render json: {company: user}, status: 200
else
render json: {message: "Problem updating company"}, status: 500
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.