* @since 5.5.0 */ class BasicHttpAuthLogin extends HttpBasicAuth { use SiteFilterTrait, BasicHttpAuthTrait; /** * @inheritdoc */ public $realm; /** * @inheritdoc */ public function __construct($config = []) { parent::__construct($config + [ 'auth' => [$this, 'auth'], 'realm' => Craft::$app->getSystemName(), ]); } protected function auth($username, $password): ?IdentityInterface { if (!$username || !$password) { return null; } $user = User::find()->username($username)->one(); $identity = $user?->findIdentity($user->id); if ($identity && Craft::$app->getSecurity()->validatePassword($password, $identity->password)) { return $identity; } return null; } }