File tree Expand file tree Collapse file tree 3 files changed +32
-1
lines changed
app/controllers/devise_token_auth
controllers/devise_token_auth Expand file tree Collapse file tree 3 files changed +32
-1
lines changed Original file line number Diff line number Diff line change @@ -73,7 +73,7 @@ def update
7373 # make sure user is authorized
7474 if require_client_password_reset_token? && resource_params [ :reset_password_token ]
7575 @resource = resource_class . with_reset_password_token ( resource_params [ :reset_password_token ] )
76- return render_update_error_unauthorized unless @resource
76+ return render_update_error_unauthorized unless @resource && @resource . reset_password_period_valid?
7777
7878 @token = @resource . create_token
7979 else
Original file line number Diff line number Diff line change @@ -746,6 +746,36 @@ class DeviseTokenAuth::PasswordsControllerTest < ActionController::TestCase
746746 end
747747 end
748748
749+ describe 'with expired reset password token' do
750+ before do
751+ DeviseTokenAuth . require_client_password_reset_token = true
752+ reset_password_token = @resource . send_reset_password_instructions
753+ @resource . update! reset_password_sent_at : 2 . days . ago
754+
755+ @new_password = Faker ::Internet . password
756+ @params = { password : @new_password ,
757+ password_confirmation : @new_password ,
758+ reset_password_token : reset_password_token }
759+
760+ put :update , params : @params
761+
762+ @data = JSON . parse ( response . body )
763+ @resource . reload
764+ end
765+
766+ test 'request should fail' do
767+ assert_equal 401 , response . status
768+ end
769+
770+ test 'new password should not authenticate user' do
771+ assert !@resource . valid_password? ( @new_password )
772+ end
773+
774+ teardown do
775+ DeviseTokenAuth . require_client_password_reset_token = false
776+ end
777+ end
778+
749779 describe 'with invalid reset password token' do
750780 before do
751781 DeviseTokenAuth . require_client_password_reset_token = true
Original file line number Diff line number Diff line change 22
33require File . expand_path ( 'boot' , __dir__ )
44
5+ require 'logger'
56require 'action_controller/railtie'
67require 'action_mailer/railtie'
78require 'rails/generators'
You can’t perform that action at this time.
0 commit comments