Проектная лаборатория
Собственный Redis
Этап 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 go2. Откройте папку в IDE
cd ./my-redisРеализуйте требования этапа в созданном проекте.
Запустите из папки проекта
node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage nm2Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.
Результат проверки
go / ЛОКАЛЬНОПодключение к локальной проверке…
Здесь появится результат
Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.