robkir wrote:If the user can't get in with his/her original password, is it really necessary to keep his/her old password alive?
It is not necessary to maintain the existing password, but it is good practice to do so.
Imagine if I sold you this high tech electronic physical lock. At my shop, I help you to configure the lock such that whenever a special button on the lock is pressed, the lock generates a new random number combination that is eventually sent by text message to your mobile phone. You can then use this number combination to open the lock.
So, you happily use this feature, lock up your locker, and go on your way. Later in the day, you come back to your locker, try the number combination, but lo, the lock does not open! Maybe you used the wrong number combination, so you try different ones, but all do not work.
Finally, in frustration, you pull out your mobile phone to call me, and see that you have received a dozen text messages, but you did not notice because your phone was on silent mode. It turns out that passers-by have been pressing that cute little button on your lock, thus resetting the number combination each time.
This is like what can happen if you directly change the user's password in response to a request for a password reset, before you have verified that the user is who he says he is. This verification can be done by using a random token provided to a special password reset page that only resets if the correct (single use) random token is provided, or it can be done by using a temporary secondary password.