WebMogilevtsev
WebMogilevtsev
  • 27
  • 126 214
Аутентификация в 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
Переглядів: 22 658

Відео

Микросервис на NestJS. Урок 15
Переглядів 1 тис.Рік тому
Создадим библиотеку для контрактов Применим контракт создания поста к его слушателю Добавим обработку ошибок Подведем итоги Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs #rabbit #rabbitmq Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 0:00 - Создание библиотеки для контрактов 13:50 - Описываем контракт создания поста 25:45 ...
Микросервис на NestJS. Урок 14
Переглядів 782Рік тому
Подключение 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
Переглядів 442Рік тому
Сегодня добавим обработчик ошибок для GraphQL Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs #graphql Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 0:00 - Настраиваем формат ошибки в GraphQL 5:45 - Настраиваем глобальный фильтр исключений
Микросервис на NestJS. Урок 12
Переглядів 445Рік тому
Сегодня наполним резолвер оставшимися методами, добавим декоратор для извлечения пользователя, 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
Переглядів 521Рік тому
Подключаем 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 на борту
Переглядів 5 тис.Рік тому
Небольшой пример сооздания бота для телеграм на 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
Переглядів 594Рік тому
Сегодня подключим 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
Переглядів 577Рік тому
В этом уроке мы наполним контроллер оставшимися методами. Добавим в агрегат метод для приведения его к нужному виду и протестируем все это дело через Postman Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 0:00 - Получение поста по идентификатору 4:00 - Получение всех постов 7:30...
Микросервис на NestJS. Урок 8
Переглядів 797Рік тому
Сегодня настроим 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 тис.Рік тому
В этом уроке создадим контроллер для постов, декоратор для извлечения пользователя из request, правим конфиги для typeorm, проверяем миграции и создание поста Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 1:00 - Создание контроллера 6:50 - Настройка Domains модуля и подключение...
Микросервис на NestJS. Урок 6
Переглядів 985Рік тому
Сегодня создадим адаптер - класс, который реализует методы нашего репозитория, т.е. будет после взаимодействие с базой данных. Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs #typeorm Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev 0:00 - Создаем адаптер. Реализация абстрактного репозитория 2:40 - Реализуем метод сохранения 9:...
Микросервис на NestJS. Урок 5
Переглядів 1,4 тис.Рік тому
В этом видео создадим запросы, пагинацию и настроим фасад Полный курс доступен по ссылке 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,4 тис.Рік тому
В этом видео мы создадим фасад, который в будущем будем экспортироваться из модуля постов и позволять работать с ними. Создадим команды для работы с постами через CQRS и зарегистрируем обработчики в модуле постов Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs #cqrs Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev Содержание ку...
Микросервис на NestJS. Урок 3
Переглядів 1,5 тис.Рік тому
Сегодня создадим глобальный обработчик ошибок и напишем абстрактный класс с методами по управлению постами в БД Полный курс доступен по ссылке boosty.to/webmogilevtsev/posts/674fb1a6-206c-4338-835b-0d23ae965deb #nestjs #exceptions #repository #abstract Присоединяйтесь к группе в телеграмме t.me/webmogilevtsev Содержание видео: 0:00 - Фиксируем предыдущие изменения 0:20 - Инициализируем shared б...
Микросервис на NestJS. Урок 2
Переглядів 3 тис.Рік тому
Микросервис на NestJS. Урок 2
Микросервис на NestJS. Урок 1
Переглядів 7 тис.Рік тому
Микросервис на NestJS. Урок 1
Создание микросервиса на NestJS
Переглядів 3,9 тис.Рік тому
Создание микросервиса на NestJS
Миграции. Обновление поля JSONB
Переглядів 3 тис.2 роки тому
Миграции. Обновление поля JSONB
NestJS. От 0 до Junior. Урок 5
Переглядів 2,1 тис.2 роки тому
NestJS. От 0 до Junior. Урок 5
NestJS. От 0 до Junior. Урок 4
Переглядів 2,3 тис.2 роки тому
NestJS. От 0 до Junior. Урок 4
NestJS. От 0 до Junior. Урок 3
Переглядів 2,3 тис.2 роки тому
NestJS. От 0 до Junior. Урок 3
NestJS. От 0 до Junior. Урок 2
Переглядів 4,7 тис.2 роки тому
NestJS. От 0 до Junior. Урок 2
NestJS. От 0 до Junior. Урок 1
Переглядів 12 тис.2 роки тому
NestJS. От 0 до Junior. Урок 1
NestJS TypeORM миграции
Переглядів 14 тис.2 роки тому
NestJS TypeORM миграции
Full-stack приложение. Angular GraphQL Docker. Часть 2. Frontend
Переглядів 3,9 тис.2 роки тому
Full-stack приложение. Angular GraphQL Docker. Часть 2. Frontend
Full-stack приложение. NestJS TypeORM PostgreSQL GraphQL Docker. Часть 1. Backend
Переглядів 29 тис.2 роки тому
Full-stack приложение. NestJS TypeORM PostgreSQL GraphQL Docker. Часть 1. Backend

КОМЕНТАРІ

  • @АртемПеденко-о1т
    @АртемПеденко-о1т Місяць тому

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

  • @Guru99442
    @Guru99442 Місяць тому

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

    • @webmogilevtsev3177
      @webmogilevtsev3177 Місяць тому

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

    • @Guru99442
      @Guru99442 Місяць тому

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

  • @steel10050Omusic_drums_live
    @steel10050Omusic_drums_live Місяць тому

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

  • @mrblacklord6143
    @mrblacklord6143 2 місяці тому

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

  • @mrblacklord6143
    @mrblacklord6143 2 місяці тому

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

  • @GLUCKKKKKKKKKK
    @GLUCKKKKKKKKKK 3 місяці тому

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

  • @kavm85
    @kavm85 3 місяці тому

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

  • @serikurazmaxambetov.v2
    @serikurazmaxambetov.v2 3 місяці тому

    Крутой!

  • @ВикторСергеевич-р7р
    @ВикторСергеевич-р7р 4 місяці тому

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

  • @AGM140580
    @AGM140580 5 місяців тому

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

  • @Павел-ф9ш6р
    @Павел-ф9ш6р 5 місяців тому

    1:03:38

  • @alexeykornev4048
    @alexeykornev4048 5 місяців тому

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

  • @ioannhide3355
    @ioannhide3355 5 місяців тому

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

  • @АлександрМорозов-р1х
    @АлександрМорозов-р1х 5 місяців тому

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

  • @ilyaincrypt0
    @ilyaincrypt0 6 місяців тому

    воды 90%

  • @jagajaga6908
    @jagajaga6908 6 місяців тому

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

  • @НикитаГришин-м5с
    @НикитаГришин-м5с 6 місяців тому

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

  • @robles2145
    @robles2145 6 місяців тому

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

    • @axhmed4257
      @axhmed4257 3 місяці тому

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

    • @ilytoowee1372
      @ilytoowee1372 2 місяці тому

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

  • @overlapped
    @overlapped 6 місяців тому

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

  • @monst3rguy154
    @monst3rguy154 7 місяців тому

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

  • @raminhesenov1376
    @raminhesenov1376 7 місяців тому

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

  • @coOonNect
    @coOonNect 8 місяців тому

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

  • @raissound
    @raissound 8 місяців тому

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

  • @gigakvachakhia4777
    @gigakvachakhia4777 8 місяців тому

    gde novie Vidosi? :D sdelai kurs xotiabi, kupim

  • @kirillmilano7593
    @kirillmilano7593 8 місяців тому

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

  • @Андрюхаслазерки
    @Андрюхаслазерки 9 місяців тому

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

  • @osad4enko
    @osad4enko 9 місяців тому

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

    • @webmogilevtsev3177
      @webmogilevtsev3177 9 місяців тому

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

  • @AI_about_crypto
    @AI_about_crypto 9 місяців тому

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

  • @kimblinov1594
    @kimblinov1594 9 місяців тому

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

  • @Bugagych
    @Bugagych 9 місяців тому

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

  • @kimblinov1594
    @kimblinov1594 9 місяців тому

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

  • @kimblinov1594
    @kimblinov1594 9 місяців тому

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

  • @polioann
    @polioann 10 місяців тому

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

  • @sergeyf4256
    @sergeyf4256 10 місяців тому

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

  • @neurabrain
    @neurabrain 10 місяців тому

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

  • @neurabrain
    @neurabrain 10 місяців тому

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

    • @dmitriygolub4362
      @dmitriygolub4362 2 місяці тому

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

  • @34535fff
    @34535fff 10 місяців тому

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

    • @АлександрМорозов-р1х
      @АлександрМорозов-р1х 5 місяців тому

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

  • @АлибекБилалов-н4я
    @АлибекБилалов-н4я 11 місяців тому

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

  • @VolframLEONE
    @VolframLEONE 11 місяців тому

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

  • @НашаРыбалка-ш1й
    @НашаРыбалка-ш1й 11 місяців тому

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

    • @webmogilevtsev3177
      @webmogilevtsev3177 11 місяців тому

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

    • @Аларак-в5г
      @Аларак-в5г 7 місяців тому

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

  • @spr1ng586
    @spr1ng586 11 місяців тому

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

  • @CorleoneMikele
    @CorleoneMikele 11 місяців тому

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

  • @ВасисуалийЛоханкин-ж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

  • @Mr.Bellamy
    @Mr.Bellamy Рік тому

    Посмотрел за 3 дня. Хорошее видео, спасибо! Единственное, видос был бы максимально полным, если бы еще добавлено было подтверждение почты и гуард который не пускает по опредленным путям, без подтверждения почты. Придется самому ковырять)))) P.S. Авторизация через яндекс чет не завелась с ходу по аналогии с гуглом, там какой-то код прилетает, который надо менять на токен, а нест падает с ошибкой. Я не стал углубляться в доку, хep с ним. Паспорт яндекс в npm 3 года назад обновляли =\

  • @AleksandrNeo
    @AleksandrNeo Рік тому

    Привет, я нуб в фулстеке, но как можно (схематично) организовать общение этого бека с фронтом? У меня есть монорепа и хочу написать фронт для аутентификации и как раз такой вариант (пароли, провайдеры по типу гугл яндекс) мне очень подходит. Буду рад советам/комментариям

    • @Mr.Bellamy
      @Mr.Bellamy Рік тому

      дык тут все апи есть, на фронте просто вызываешь эти методы, вместо постмана и вжуууууууух ты зареган))