Зачем нужен auth_key Yii2?

Планирую создать простую форму авторизации / регистрации пользователя. Почитал множество гайдов о том, как это можно реализовать, и заметил, что везде в миграции (и в модели) есть auth_key:

$this->createTable('{{%user}}', [
    'id' => $this->primaryKey(),
    'username' => $this->string()->notNull()->unique(),

    // !!!
    'auth_key' => $this->string(32)->notNull(),

    'password_hash' => $this->string()->notNull(),
    'password_reset_token' => $this->string()->unique(),
    'email' => $this->string()->notNull()->unique(),
    'created_at' => $this->integer()->notNull(),
    'updated_at' => $this->integer()->notNull(),
], $tableOptions);

Я поразмыслил, и решил делать авторизацию без него. Все вроде ок, миграцию применил, начал делать модель User, и столкнулся с такой ошибкой:

'app\models\User' does not implement methods 'getAuthKey', 'validateAuthKey'

php ругается, мол, не объявлены методы getAuthKey и validateAuthKey. Как можно это исправить? И зачем так сильно нужен этот самый auth_key?


Ответы (1 шт):

Автор решения: Алексей Шиманский

Фреймворк для аунтентификации:

  1. Смотрит id юзера в сессии. Если не нашлось, то...
  2. Смотрит id и auth_key в куках. Туда они сохраняются только при "Запомнить меня".

Сессия по умолчанию живёт один час.

По сути, если не нужна галочка, то все эти auth_key не нужны

→ Ссылка