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

  Рет қаралды 65,687

Николай Тузов — Golang

Николай Тузов — Golang

Күн бұрын

Пишем полноценный gRPC сервис с современной архитектурой. Также:
- Напишем контракт protobuf, разберемся с кодогенерацией
- Научимся работать с ошибками и логами
- Настроим миграции для БД
- Настроим автоматический деплой через GitHub Actions, напишем для этого workflow
- и др.
Исходный код проекта (версия кода с зафиксированной версией на момент выхода гайда): github.com/GolangLessons/sso/...
Текстовая версия в виде инструкции: slc.tl/ygj4t
Полная текстовая версия гайда: habr.com/ru/articles/774796/
Облачный сервер для для gRPC-сервиса: slc.tl/s0kla
--------
Другие мои ролики, дополняющие текущий:
REST API - URL Shortener: • Пишем REST API сервис ...
Интерфейсы по месту использования: • Почему интерфейсы лучш...
Моки и их генерация: • Генерация и использова...
Использование SQLite в Go: • SQLite в Golang - как ...
----
👾 t.me/ntuzov - мой канал в Telegram.
Пишу в нём много интересного: гайды, которых нет на KZbin, интересные мысли про разработку, новости и анонсы всех моих активностей и др.
👀 GoLang Digest: t.me/golang_digest - мои регулярные подборки интересных материалов по Go.
🗣️ Наше сообщество GopherClub: t.me/+zsSZ63wEJDs3NGVi
Лучшее русскоязычное Go-сообщество с очень приятной атмосферой, без токсиков. Вежливо и терпеливо помогаем новичкам, конструктивно дискутируем с профессионалами и т.п.
Здесь также присутствуют все звезды Go-сообщества и представители интересных компаний 😄
❤️ Если у вас есть желание поддержать развитие канала:
Секретный телеграм-канал:
- В рублях: t.me/+1UPXV_DGnG1mODJi
- В евро: t.me/+hedI8LevYTc5MDM6
Boosty: boosty.to/nikolay.tuzov
Patreon: / tuzov
----
Тайм-коды:
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 Настраиваем логгер - log.slog
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

Пікірлер: 145
Как на самом деле устроены каналы в Golang? | Golang channels internals
41:31
Тяжелые будни жены
00:46
К-Media
Рет қаралды 5 МЛН
Did you find it?! 🤔✨✍️ #funnyart
00:11
Artistomg
Рет қаралды 123 МЛН
Pray For Palestine 😢🇵🇸|
00:23
Ak Ultra
Рет қаралды 33 МЛН
$10,000 Every Day You Survive In The Wilderness
26:44
MrBeast
Рет қаралды 47 МЛН
GoLang Slice в деталях, простым языком
32:09
Николай Тузов — Golang
Рет қаралды 72 М.
Антон Сергеев, «Go под капотом»
36:37
Kolesa Group
Рет қаралды 88 М.
Golang's Mocking Techniques - Kyle Yost | hatchpad Huddle
41:20
Что такое gRPC и Protobuf?
8:37
Merion Academy
Рет қаралды 38 М.
Тяжелые будни жены
00:46
К-Media
Рет қаралды 5 МЛН