WebMogilevtsev
WebMogilevtsev
  • 27
  • 130 829
Аутентификация в NestJS
В этом видео мы рассмотрим, как настроить авторизацию на NestJS. Вы узнаете, как реализовать регистрацию с помощью логина и пароля, авторизацию пользователей по этим данным, а также авторизацию через Google и Яндекс. Также покажу как генерировать пару access и refresh токенов, как их хранить и работать с БД при помощи Prisma. Дополнительно разберем защиту роутов, создание своих декораторов, кешиирование данных и другое.
Репозиторий доступен по ссылке t.me/webmogilevtsev/1818
#nestjs #prisma #googleauth #yandexauth #jwt
Google Console Developer console.cloud.google.com/project
Yandex Console Developer oauth.yandex.ru/client/new/id/
Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev
มุมมอง: 24 314

วีดีโอ

Микросервис на NestJS. Урок 15
มุมมอง 1.1Kปีที่แล้ว
Создадим библиотеку для контрактов Применим контракт создания поста к его слушателю Добавим обработку ошибок Подведем итоги Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs #rabbit #rabbitmq Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 0:00 - Создание библиотеки для контрактов 13:50 - Описываем контракт создания поста 25:45 ...
Микросервис на NestJS. Урок 14
มุมมอง 847ปีที่แล้ว
Подключение RabbitMQ. Метод создания поста Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs #rabbit #rabbitmq Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 0:00 Донастройка класса с пагинацией 2:00 Настраиваем RabbitMQ 13:30 Настройка каналов для общения через RabbitMQ 16:45 Метод создания поста 19:30 Регистрируем очередь в к...
Микросервис на NestJS. Урок 13
มุมมอง 455ปีที่แล้ว
Сегодня добавим обработчик ошибок для GraphQL Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs #graphql Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 0:00 - Настраиваем формат ошибки в GraphQL 5:45 - Настраиваем глобальный фильтр исключений
Микросервис на NestJS. Урок 12
มุมมอง 470ปีที่แล้ว
Сегодня наполним резолвер оставшимися методами, добавим декоратор для извлечения пользователя, guard для защиты резолвера Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs #graphql Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 0:00 - Мутация создания поста 1:50 - Инпут для создания поста 5:15 - Проверяем создание поста 9:30 - ...
Микросервис на NestJS. Урок 11
มุมมอง 551ปีที่แล้ว
Подключаем GraphQl и настраиваем резолвер на получение постов Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs #graphql Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 0:00 - Установка зависимостей для GraphQl 2:40 - Настройка подключения к GraphQl 8:35 - Создание резолвера постов 11:00 - Описание ответов query запросов 15:15 -...
TelegramBot на NestJS с ChatGPT на борту
มุมมอง 6Kปีที่แล้ว
Небольшой пример сооздания бота для телеграм на NestjS с подключением ChatGPT. Для работы с телеграм api использовалоась библиотека nestjs-telegraf Для работы с api chatgpt использовал пакет openai Ссылка на репозиторий: github.com/mogilevtsevdmitry/nestjs-telegraf-chatgpt #nestjs #telegram #chatgpt Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 0:00 - Инициализация проекта 2:35 - По...
Микросервис на NestJS. Урок 10
มุมมอง 621ปีที่แล้ว
Сегодня подключим swagger документацию Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs #swagger Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 0:00 - Установка зависимостей для swagger 1:15 - Подключение swagger в корневом main.ts 7:30 - Описание контроллера 12:40 - Описание DTO создания поста 14:00 - Описание DTO обновления ...
Микросервис на NestJS. Урок 9
มุมมอง 605ปีที่แล้ว
В этом уроке мы наполним контроллер оставшимися методами. Добавим в агрегат метод для приведения его к нужному виду и протестируем все это дело через Postman Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 0:00 - Получение поста по идентификатору 4:00 - Получение всех постов 7:30...
Микросервис на NestJS. Урок 8
มุมมอง 832ปีที่แล้ว
Сегодня настроим auth модуль, jwt стратегию, public декаратор и guard. Протестируем проверку авторизации через jwt токен и метод создания поста Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 0:00 - Реализация проверки JWT токена 9:50 - Настройка jwt-guard 13:10 - Публичный декар...
Микросервис на NestJS. Урок 7
มุมมอง 1.1Kปีที่แล้ว
В этом уроке создадим контроллер для постов, декоратор для извлечения пользователя из request, правим конфиги для typeorm, проверяем миграции и создание поста Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 1:00 - Создание контроллера 6:50 - Настройка Domains модуля и подключение...
Микросервис на NestJS. Урок 6
มุมมอง 1Kปีที่แล้ว
Сегодня создадим адаптер - класс, который реализует методы нашего репозитория, т.е. будет после взаимодействие с базой данных. Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs #typeorm Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 0:00 - Создаем адаптер. Реализация абстрактного репозитория 2:40 - Реализуем метод сохранения 9:...
Микросервис на NestJS. Урок 5
มุมมอง 1.5Kปีที่แล้ว
В этом видео создадим запросы, пагинацию и настроим фасад Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs #cqrs Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev Содержание курса: 0:00 - Фиксация прошлых изменений 0:40 - Создаем запрос на получение одного поста 5:00 - Создаем запрос на получение всех постов 11:00 - Создаем класс...
Микросервис на NestJS. Урок 4
มุมมอง 1.4Kปีที่แล้ว
В этом видео мы создадим фасад, который в будущем будем экспортироваться из модуля постов и позволять работать с ними. Создадим команды для работы с постами через CQRS и зарегистрируем обработчики в модуле постов Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs #cqrs Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev Содержание ку...
Микросервис на NestJS. Урок 3
มุมมอง 1.6Kปีที่แล้ว
Сегодня создадим глобальный обработчик ошибок и напишем абстрактный класс с методами по управлению постами в БД Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs #exceptions #repository #abstract Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev Содержание видео: 0:00 - Фиксируем предыдущие изменения 0:20 - Инициализируем shared б...
Микросервис на NestJS. Урок 2
มุมมอง 3.1Kปีที่แล้ว
Микросервис на NestJS. Урок 2
Микросервис на NestJS. Урок 1
มุมมอง 7Kปีที่แล้ว
Микросервис на NestJS. Урок 1
Создание микросервиса на NestJS
มุมมอง 4.1Kปีที่แล้ว
Создание микросервиса на NestJS
Миграции. Обновление поля JSONB
มุมมอง 3K2 ปีที่แล้ว
Миграции. Обновление поля JSONB
NestJS. От 0 до Junior. Урок 5
มุมมอง 2.2K2 ปีที่แล้ว
NestJS. От 0 до Junior. Урок 5
NestJS. От 0 до Junior. Урок 4
มุมมอง 2.4K2 ปีที่แล้ว
NestJS. От 0 до Junior. Урок 4
NestJS. От 0 до Junior. Урок 3
มุมมอง 2.4K2 ปีที่แล้ว
NestJS. От 0 до Junior. Урок 3
NestJS. От 0 до Junior. Урок 2
มุมมอง 4.8K2 ปีที่แล้ว
NestJS. От 0 до Junior. Урок 2
NestJS. От 0 до Junior. Урок 1
มุมมอง 12K2 ปีที่แล้ว
NestJS. От 0 до Junior. Урок 1
NestJS TypeORM миграции
มุมมอง 15K2 ปีที่แล้ว
NestJS TypeORM миграции
Full-stack приложение. Angular GraphQL Docker. Часть 2. Frontend
มุมมอง 3.9K2 ปีที่แล้ว
Full-stack приложение. Angular GraphQL Docker. Часть 2. Frontend
Full-stack приложение. NestJS TypeORM PostgreSQL GraphQL Docker. Часть 1. Backend
มุมมอง 29K3 ปีที่แล้ว
Full-stack приложение. NestJS TypeORM PostgreSQL GraphQL Docker. Часть 1. Backend

ความคิดเห็น

  • @max_wbw
    @max_wbw หลายเดือนก่อน

    5:00 В схеме User роль не должна быть массивом, роль может быть только одна. Создается базовый класс пользователя, а админ расширяет этот класс со своими привилегиями, также и менеджеры со своими, и супер админы со своими, и кто угодно.

  • @СашаАлександр-е4м
    @СашаАлександр-е4м 2 หลายเดือนก่อน

    Прям такая расслабляться атмосфер) Приятно смотреть. Для новичков не очень понятно, но для тех, кто уже имеет некую "базу" это просто находка

  • @АртемПеденко-о1т
    @АртемПеденко-о1т 4 หลายเดือนก่อน

    А почему сущности находятся не в src рядом с папкой постов? Типо чтобы другой микросервис который будет рядом лежать тоже мог ей пользоваться?

  • @Guru99442
    @Guru99442 4 หลายเดือนก่อน

    Довольно неприятно осознавать, что в 2023 году код остается на таком низком уровне. Вместо того чтобы усложнять задачу с использованием process.cwd, можно было просто сделать экспорт, используя возможности ES6. Почему не уделить время на изучение документации TypeOrm и выкладывать на GitHub качественные решения? Хотелось бы объяснить матом какой же автор животное, но ютуб такое не пропускает)

    • @webmogilevtsev3177
      @webmogilevtsev3177 4 หลายเดือนก่อน

      @@Guru99442 ну коль ду дохуя умный, запиши свое видео, с правильным кодом

    • @Guru99442
      @Guru99442 4 หลายเดือนก่อน

      @@webmogilevtsev3177 И запишу, как только выложу тебе первым напишу, зай)

  • @steel10050Omusic_drums_live
    @steel10050Omusic_drums_live 4 หลายเดือนก่อน

    @webmogilev а нет Angular части для этой чудесной auth?

  • @mrblacklord6143
    @mrblacklord6143 5 หลายเดือนก่อน

    Как называется тема vscode?

  • @mrblacklord6143
    @mrblacklord6143 5 หลายเดือนก่อน

    как называется тема vscode'а?

  • @GLUCKKKKKKKKKK
    @GLUCKKKKKKKKKK 6 หลายเดือนก่อน

    В чем отличие от сессий если мы храним токены в бд?

  • @kavm85
    @kavm85 6 หลายเดือนก่อน

    Очень познавательно. Спасибо.

  • @serikurazmaxambetov.v2
    @serikurazmaxambetov.v2 7 หลายเดือนก่อน

    Крутой!

  • @ВикторСергеевич-р7р
    @ВикторСергеевич-р7р 7 หลายเดือนก่อน

    к слову о том, почему нельзя использовать "as" и "any"

  • @AGM140580
    @AGM140580 8 หลายเดือนก่อน

    Огромное спасибо за урок! Смотрел и повторял недели две. Получил много полезного опыта. С нетерпением жду Ваших новых видеоуроков.

  • @Павел-ф9ш6р
    @Павел-ф9ш6р 8 หลายเดือนก่อน

    1:03:38

  • @alexeykornev4048
    @alexeykornev4048 8 หลายเดือนก่อน

    С😀пасибо! Все по полочкам

  • @ioannhide3355
    @ioannhide3355 8 หลายเดือนก่อน

    Все верно! Хреновый контент на коленке. Убил 40 минут времени чтобы в этом говнокоде разобраться а в следующем видео уже разбираются (((((

  • @АлександрМорозов-р1х
    @АлександрМорозов-р1х 9 หลายเดือนก่อน

    Поставил плюс за старания, качество видео и за ссылку на репозиторий, но немного критики. Во-первых, непонятна целевая аудитория ролика. Новички? Тогда почему автор почти ничего не объясняет, для чего он делает то и сё? Опытные разрабы? Так они уже всё это знают и смотреть вряд ли будут. Средние, типа меня? Много спорного на мой взгляд, что можно было бы сделать по-другому или проще, не усложнять. Во вторых, неплохо было бы разбить видео на таймкоды, чтобы была ясная последовательность действий.

  • @ilyaincrypt0
    @ilyaincrypt0 9 หลายเดือนก่อน

    воды 90%

  • @jagajaga6908
    @jagajaga6908 9 หลายเดือนก่อน

    спасибо за полезный контент

  • @НикитаГришин-м5с
    @НикитаГришин-м5с 9 หลายเดือนก่อน

    Ты хорош, но буква а🥶🥶🥶

  • @robles2145
    @robles2145 9 หลายเดือนก่อน

    Для крупного проекта хранить рефреш токен в куках - мертвое дело. С репликацией вся эта схема работать не будет. Да и смысл вообще, если уж скрипт внедрился на фронт, то он и с кукой этой запрос кинет без проблем не обращаясь к ней

    • @axhmed4257
      @axhmed4257 6 หลายเดือนก่อน

      А где лучше хранить рефреш токен и access token тоже

    • @ilytoowee1372
      @ilytoowee1372 5 หลายเดือนก่อน

      так рял в локалсторадже хранить?

  • @overlapped
    @overlapped 9 หลายเดือนก่อน

    Как с типом bytea работать?

  • @monst3rguy154
    @monst3rguy154 10 หลายเดือนก่อน

    может кто поможет, нужно написать скрипт который будет создавать админа в бд, как можно реализовать?

  • @raminhesenov1376
    @raminhesenov1376 10 หลายเดือนก่อน

    Отличные видео по микросервисам в целом. И узнал новые паттерны , такие как facade , adapter. Благодарю за знания

  • @coOonNect
    @coOonNect 11 หลายเดือนก่อน

    Спасибо вам большое

  • @raissound
    @raissound 11 หลายเดือนก่อน

    В class-validator есть @IsDateString()

  • @gigakvachakhia4777
    @gigakvachakhia4777 ปีที่แล้ว

    gde novie Vidosi? :D sdelai kurs xotiabi, kupim

  • @kirillmilano7593
    @kirillmilano7593 ปีที่แล้ว

    Чтобы ошибки не было в контроллере, нужно у функций фасада при вызове шин добавить обвертку к второму дженерику, пример: this.queryBus.execute<GetPostQuery, Awaited<ReturnType<GetPostQueryHandler['execute']>>>(new GetPostQuery(id));

  • @Андрюхаслазерки
    @Андрюхаслазерки ปีที่แล้ว

    Хорошее видео. Лайк поставил. Давненько видео не снимал.

  • @osad4enko
    @osad4enko ปีที่แล้ว

    Сервис токена занимает большую часть модуля AUTH, насколько ему уместно быть в AUTH, а не в своем собственном модуле TOKEN и инжектиться в другие модули ?

    • @webmogilevtsev3177
      @webmogilevtsev3177 ปีที่แล้ว

      Можно, чтобы декомпозировать )

  • @AI_about_crypto
    @AI_about_crypto ปีที่แล้ว

    Привет! Если не трудно, можешь скинуть какую нибудь доку по декораторам nestjs-telegraf ?

  • @kimblinov1594
    @kimblinov1594 ปีที่แล้ว

    20:30 commands = { createPost: (post: CreatePostDto) => this.... }; не проще ли сделать просто запись commands = { createPost: this.createPost };

  • @Bugagych
    @Bugagych ปีที่แล้ว

    @WebMogilevtsev Привет! Классное объяснение. Подписан на тебя давно, но что-то не смотрел. Буду следить. Пиши больше!

  • @kimblinov1594
    @kimblinov1594 ปีที่แล้ว

    очень угарнул с фразы ) если фронту это надо , то пусть обрабатывает это на фронте ))

  • @kimblinov1594
    @kimblinov1594 ปีที่แล้ว

    я бы предложил не использовать any, а написать private _response(status: number, request: Request, exception: unknown) {

  • @polioann
    @polioann ปีที่แล้ว

    00:00 - Начало 01:38 - Добавление prisma, база данных 08:54 - Работа с пользователем 25:27 - Работа с аутентификацией

  • @sergeyf4256
    @sergeyf4256 ปีที่แล้ว

    команда \dt не сработала, только после прописывание всех характеристик этой командой psql -U root_auth -d db_auth - перешел именно к конкретной базе данны, а потом уже вводил \dt как в видео чтобы получилось увидеть List of relations. Ну возможно я что-то сделал не так как на видео т.к. версия pg: 15, dpage/pgadmin4:6

  • @neurabrain
    @neurabrain ปีที่แล้ว

    а почему токены храним в postgres ? вроде правильнее их хранить в redis ?

  • @neurabrain
    @neurabrain ปีที่แล้ว

    'prettier/prettier': [ 'error', { endOfLine: 'auto', }, ], а что дает добавление этого кода? что с ним что без него я разницы не заметил

    • @dmitriygolub4362
      @dmitriygolub4362 5 หลายเดือนก่อน

      убирает ошибку ESLint, а именно "delete `␍`eslintprettier/prettier"

  • @34535fff
    @34535fff ปีที่แล้ว

    А для чего нам 2 докера? Нужен ли второй докер который внутри призмы, он туда случайно попал? Имею ввиду тот что в папке prisma

    • @АлександрМорозов-р1х
      @АлександрМорозов-р1х 9 หลายเดือนก่อน

      Неа, здесь вообще докерфайл не нужен, потому что ведется только разработка (dev) и всё устанавливается через yarn. Нужен только docker-compose для удобного доступа к postgres и pgadmin. Докерфайл нужен если есть разные окуржения- одно для разработки, другое для тестирования, третье для продакшена. На фига? Чтобы не установить лишние библиотеки, для nodejs это очень болезненная тема. К примеру в продакшене уже не нужен jest и куча тайпскриптовых d.ts файлов. Сейча принято создавать один докер-файл и прописывать в нём мульти-этапные сборки. Видели наверное, в докер-файле бывает напихано: FROM node AS build потом ниже FROM node AS production и тд . Multi-staged build dockerfile по-научному

  • @АлибекБилалов-н4я
    @АлибекБилалов-н4я ปีที่แล้ว

    Отличный урок. Есть ли возможность сделать урок с Аутентификаций nest+graphql ?

  • @VolframLEONE
    @VolframLEONE ปีที่แล้ว

    Что то я не понял как на фронте происходит логин, и получение данных юзера для фронта

  • @НашаРыбалка-ш1й
    @НашаРыбалка-ш1й ปีที่แล้ว

    Подскажите, запросы к API openai отправляет сам Telegram или Nest? Или по другому спрошу, если этот код будет лежать на сервере в России, будет работать?

    • @webmogilevtsev3177
      @webmogilevtsev3177 ปีที่แล้ว

      Да, будет) запросы шлёт nestjs, а точнее axios под капотом, но не суть, api openai работает в РФ, можно через постман проверить

    • @Аларак-в5г
      @Аларак-в5г 10 หลายเดือนก่อน

      @@webmogilevtsev3177 Уже не работает, вчера проверял. Без VPN их API 403 код возвращает в РФ.

  • @spr1ng586
    @spr1ng586 ปีที่แล้ว

    На самом деле супер офигенный видос по Nest. Для меня, как для новичка, получился видос не просто по аутентификации, а по самому фреймворку. Очень много нового узнал

  • @CorleoneMikele
    @CorleoneMikele ปีที่แล้ว

    Такое ощущение что при печати ты прыгаешь на старой пружинной кровати, так клавиатура пружинами брянчит, без обид ). А контент интересный, тебе бы компуктер помощнее чтоб не лагало и нормальную клавиатуру🤘Сорян за некропостинг.

  • @ВасисуалийЛоханкин-ж8и
    @ВасисуалийЛоханкин-ж8и ปีที่แล้ว

    ну звук блін паршивий нужен новий микрофон

  • @MrSlapp150
    @MrSlapp150 ปีที่แล้ว

    Отличный курс. Очень насыщенный! Спасибо!

  • @mishakrasnonos6333
    @mishakrasnonos6333 ปีที่แล้ว

    Обьясните пожалуста кокой принцип работы после деплоя, сами данные бд получается лежат теперь удаленно? они вместе докер-контейнером улетели туда? и дальнейшие взаимодествия через новый апи осуществляется через этот апи к удаленной базе? или это только сам проект задеплоен а база данных это та что локально на пк в постгресе?

  • @shaxanematov8516
    @shaxanematov8516 ปีที่แล้ว

    Спасибо за курс) хотел уточнить почему у вас все в libs ? Это какой-то архитектурный стиль?

    • @webmogilevtsev3177
      @webmogilevtsev3177 ปีที่แล้ว

      Рассматриваю домены как библиотеку, которую подключаю в приложении и прокидываю реализацию) по аналогии как подключаем модуль для работы с БД и прикидываем в него конфигурацию)

    • @shaxanematov8516
      @shaxanematov8516 ปีที่แล้ว

      @@webmogilevtsev3177 спасибо

  • @MrSlapp150
    @MrSlapp150 ปีที่แล้ว

    Зачем нужен декоратор @Public() для общедоступных эндпоинтов? Они и так доступны.

    • @webmogilevtsev3177
      @webmogilevtsev3177 ปีที่แล้ว

      Когда глобально висит гуард - они недоступны

    • @MrSlapp150
      @MrSlapp150 ปีที่แล้ว

      @@webmogilevtsev3177 точно, понял. Спасибо! Отличный материал!

  • @sunpacker
    @sunpacker ปีที่แล้ว

    Привет, спасибо за гайд, по докам мало понятного. У меня вопрос: как мне можно отправить сообщение юзеру по его юзернейму? У телеграфа нашел метод sendMessage, но не знаю как получить доступ к инстансу Telegraf