Пишем gRPC сервис на Go - Сервис авторизации / УЛЬТИМАТИВНЫЙ гайд

Пишем полноценный gRPC сервис с современной архитектурой. Также: - Напишем контракт protobuf, разберемся с кодогенерацией - Научимся работать с ошибками и логами - Настроим миграции для БД - Настроим автоматический деплой через GitHub Actions, напишем для этого workflow - и др. Исходный код проекта (версия кода с зафиксированной версией на момент выхода гайда): Текстовая версия в виде инструкции: Полная текстовая версия гайда: Облачный сервер для для gRPC-сервиса: -------- Другие мои ролики, дополняющие текущий: REST API - URL Shortener: Интерфейсы по месту использования: Моки и их генерация: Использование SQLite в Go: ---- 👾 - мой канал в Telegram. Пишу в нём много интересного: гайды, которых нет на YouTube, интересные мысли про разработку, новости и анонсы всех моих активностей и др. 👀 GoLang Digest: - мои регулярные подборки интересных материалов по Go. 🗣️ Наше сообщество GopherClub: zsSZ63wEJDs3NGVi Лучшее русскоязычное Go-сообщество с очень приятной атмосферой, без токсиков. Вежливо и терпеливо помогаем новичкам, конструктивно дискутируем с профессионалами и т.п. Здесь также присутствуют все звезды Go-сообщества и представители интересных компаний 😄 ❤️ Если у вас есть желание поддержать развитие канала: Секретный телеграм-канал: - В рублях: 1UPXV_DGnG1mODJi - В евро: hedI8LevYTc5MDM6 Boosty: Patreon: ---- Тайм-коды: 00:00 Вступление 01:00 Мой Телеграм-канал, зачем на него подписываться 02:04 Теоретический ликбез 06:49 SSO или Auth? 07:58 Авторизация и аутентификация - в чем разница? 08:31 Архитектура авторизации в нашем сервисе 09:51 Что такое JWT и зачем он нужен? 14:01 Архитектура приложения 16:33 Protobuf контракт 31:24 Пишем SSO: каркас и структура проекта 38:03 Конфигурация приложения 52:32 Настраиваем логгер - 01:03:56 gRPC-сервер и хэндлеры 01:18:48 Запуск и проверка приложения 01:22:04 Graceful shutdown 01:27:08 Хэндлер Login() 01:34:28 Хэндлер Register() 01:36:01 Хэндлер IsAdmin() 01:36:53 Сервисный слой 01:46:27 Метод RegisterNewUser() и хэширование паролей 01:52:05 Метод Login() и сравнение хэшей паролей 01:58:00 Создание JWT-токена 02:04:45 Миграции базы данных 02:23:05 Слой работы с данными: реализация Storage 02:32:09 Собираем все компоненты воедино 02:37:11 Пишем функциональные тесты 03:05:22 Интеграция с другим сервисом: URL Shortener 03:15:05 Покупка облачного сервера для деплоя 03:19:16 GitHub Actions: настраиваем автоматический деплой 03:36:53 Тестируем задеплоенный сервис 03:41:23 Заключение 03:41:35 Наше сообщество - Gopher Club 03:43:16 Как поддержать развитие канала #golang #ntuzov
Back to Top