Как организовать сброс авторизации пользователя после смены пароля?

Для организации сброса авторизации пользователя после смены пароля в Yii вы можете использовать события и поведения.

1. Создайте новое событие passwordReset в модели пользователя (User) в методе afterSave или afterUpdateAttributes, чтобы оно вызывалось после успешного обновления пароля:

public function afterSave($insert, $changedAttributes)
{
    parent::afterSave($insert, $changedAttributes);
    
    if (isset($changedAttributes['password'])) {
        $this->trigger('passwordReset', new yiibaseEvent());
    }
}

2. Подключите поведение InvalidateAuthKeyBehavior (можно создать самостоятельно) к модели пользователя, чтобы сбрасывать ключ авторизации при выполнении события passwordReset:

public function behaviors()
{
    return [
        'invalidateAuthKey' => [
            'class' => InvalidateAuthKeyBehavior::class,
            'events' => [
                ActiveRecord::EVENT_AFTER_UPDATE => 'passwordReset',
            ],
        ],
    ];
}

3. В поведении InvalidateAuthKeyBehavior создайте функцию, которая будет сбрасывать ключ авторизации:

class InvalidateAuthKeyBehavior extends Behavior
{
    public $events = [];

    public function events()
    {
        return $this->events;
    }

    public function passwordReset($event)
    {
        $this->owner->generateAuthKey();
        $this->owner->save(false, ['auth_key']);
    }
}

Теперь, после изменения пароля пользователя, его ключ авторизации будет сброшен и все существующие сессии будут автоматически разлогинены.