Rails 4 + 设计 + 系统更新密码但未授权用户并注销
Rails 4 + Devise + System update the Password but Unauthorized the User and signout
在我的 Rails 项目中,我使用 Devise 进行身份验证。
第 1 步。使用电子邮件 ID 和密码 - 系统允许登录。
第 2 步。尝试更新密码 - 代码是 HomeController 而不是任何设计控制器。
第3步。它允许更新密码。但是通过给出未经授权的消息,将会话和用户抛出系统。
class HomeController < ApplicationController
before_filter :authenticate_user!
def update_password
user = User.find(current_user.id)
user_save = user.update_attributes(:password => params[:user][:password],
:password_confirmation => params[:user][:password_confirmation])
if user_save
redirect_to "/MyProfile", notice: 'User data successfully saved.'
else
redirect_to "/MyProfile", notice: 'EROROROOROROROROR.'
end
end
end
HTML代码:
<form class="navbar-form navbar-left" accept-charset="UTF-8" action="/UpdatePassword" id="CreateUserPassword" method="post">
<input name="authenticity_token" type="hidden" value="<%= form_authenticity_token.to_s%>">
<div class="form-group">
<input type="text" class="form-control" placeholder="Password" name="user[password]">
<input type="text" class="form-control" placeholder="Password Confirmation" name="user[password_confirmation]">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
请提出一些建议...
重定向之前,您必须重新登录用户
sign_in @user, :bypass => true
请参阅 https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-edit-their-password
下的解决方案 3
在我的 Rails 项目中,我使用 Devise 进行身份验证。
第 1 步。使用电子邮件 ID 和密码 - 系统允许登录。
第 2 步。尝试更新密码 - 代码是 HomeController 而不是任何设计控制器。
第3步。它允许更新密码。但是通过给出未经授权的消息,将会话和用户抛出系统。
class HomeController < ApplicationController
before_filter :authenticate_user!
def update_password
user = User.find(current_user.id)
user_save = user.update_attributes(:password => params[:user][:password],
:password_confirmation => params[:user][:password_confirmation])
if user_save
redirect_to "/MyProfile", notice: 'User data successfully saved.'
else
redirect_to "/MyProfile", notice: 'EROROROOROROROROR.'
end
end
end
HTML代码:
<form class="navbar-form navbar-left" accept-charset="UTF-8" action="/UpdatePassword" id="CreateUserPassword" method="post">
<input name="authenticity_token" type="hidden" value="<%= form_authenticity_token.to_s%>">
<div class="form-group">
<input type="text" class="form-control" placeholder="Password" name="user[password]">
<input type="text" class="form-control" placeholder="Password Confirmation" name="user[password_confirmation]">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
请提出一些建议...
重定向之前,您必须重新登录用户
sign_in @user, :bypass => true
请参阅 https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-edit-their-password
下的解决方案 3