I think you would have to add a check on every request to make sure the user context is still valid.
First thought is to have a record in a backend store that contains a timestamp that the user password was updated. When a user logs in you can write a cookie with a timestamp or store it in the session. Upon subsequent requests/checks, as long as the cookie/session date is newer than the password change date it passes. When the password changes the date on the backend record is set to current timestamp and the next check will fail and destroy the user session.
So in this context the actual invalidation wouldn't happen until the next request comes from the old session.