Проектная лаборатория

Собственный Redis

0 / 124этапов пройдено

Этап 123 · Аутентификация

Обязательная аутентификация

Русский перевод заданий CodeCrafters. Примеры подготовлены для Go. Выбор языка меняет команды и результаты, но не текст задания.

На этом этапе вы добавите обязательную аутентификацию пользователя default.

Обязательная аутентификация пользователя default

Для пользователя default новое соединение автоматически аутентифицируется как пользователь default, поскольку у него изначально установлен флаг nopass.

После установки пароля для default новые соединения больше не аутентифицируются автоматически. Однако уже аутентифицированные соединения остаются в системе.

Например:

# Client 1
$ redis-cli ACL SETUSER default >password
OK
 
# This connection remains authenticated as the default user
> ACL WHOAMI
"default"
 
# Client 2
# This connection is not authenticated
$ redis-cli ACL WHOAMI
(error) NOAUTH Authentication required.

Если неаутентифицированное соединение пытается выполнить команду, верните простую ошибку: NOAUTH Authentication required.

Проверки

Тестирующая система запустит программу так:

$ ./your_program.sh

Затем выполнит команды через два разных клиента:

# Client 1
$ redis-cli
# Expect: +OK\r\n
> ACL SETUSER default >newpassword
OK
 
# Expect RESP bulk string: "default"
> ACL WHOAMI
"default"
 
# Client 2 (new connection)
$ redis-cli
# Expect error starting with: "NOAUTH"
> ACL WHOAMI
(error) NOAUTH Authentication required.

Она проверит, что:

  • Клиент 1 всё ещё может выполнять команды и остаётся аутентифицированным как default.
  • Клиент 2 получает ошибку NOAUTH при попытке выполнить команды без аутентификации.

Проверка в вашей IDE

Нужны Node.js, Git, Go 1.24+ для тестеров и инструменты выбранного языка. Тестеры загружаются и запускаются локально; отдельным проектам нужны дополнительные системные зависимости.

Настройка проекта и IDE

1. Создайте проект один раз

node '/opt/graphlms/tools/project-lab/cli.mjs' init redis ./my-redis --language go

2. Откройте папку в IDE

cd ./my-redis

Реализуйте требования этапа в созданном проекте.

Запустите из папки проекта

node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage nm2

Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.

Результат проверки

go / ЛОКАЛЬНО

Подключение к локальной проверке…

Здесь появится результат

Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.

GraphLMS — инженерная лаборатория роста