Создание API на Symfony 5: Refresh-токены, роли и тюнинг

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ต.ค. 2024
  • В прошлом ролике мы сделали базовую регистрацию и аутентификацию, в этом нужно ее дотюнить: добавить refresh-токены, определиться с ролями и авторизировать пользователя сразу после регистрации.
    symfony.com/do...
    github.com/lex...
    github.com/mar...
    Github: github.com/ns3...
    Yandex Zen: zen.yandex.ru/...
    TH-cam: / @eazy-dev
    Telegram: t.me/eazydev_y...
    VK: eazydevru
    Rutube: rutube.ru/chan...

ความคิดเห็น • 14

  • @sanoti-official
    @sanoti-official 2 ปีที่แล้ว +1

    Спасибо тебе за данный материал и всю проделанную работу, получилось очень информативно и полезно)

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

    Очень жаль что так мало просмотров у такого крутого видео. Автору большое спасибо за работу.

  • @data-center-project
    @data-center-project 2 ปีที่แล้ว

    Очень ценный материал!!! И обработка исключений и тесты, все что было необходимо!!! Благодарствую!!!
    Теперь будем наблюдать резкое снижение количества говнокодеров в стране )))

    • @eazy-dev
      @eazy-dev  2 ปีที่แล้ว +1

      Не будем))

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

    Спасибо за видео весьма интересно и полезно, как всегда.
    После просмотра появился вопрос. У нас появились два новых метода в API, но NelmioApiDocBundle не предоставляет нам документацию по ним. Как это исправить?
    И ещё один момент, получается, тем методам, для которых мы указали ограниченный access_control, нужно дописать описание ошибок, при аутентификации/авторизации, в атрибуты (аннотации)?

  • @sanoti-official
    @sanoti-official 2 ปีที่แล้ว +2

    5:04 - Refresh-токены
    28:00 - роли
    36:05 - тюнинг

  • @МихаилСвиридов-и3я
    @МихаилСвиридов-и3я 2 ปีที่แล้ว

    С RefreshToken странная проблема... я поставил из коробки v1.1.1 на symfony 6.1 (php 8.1), и с этого момента при команде make:migration или doctrine:migration:diff - он желает стереть всю бд и добавляет одну таблицу refresh_tokens... Опытным путем выявил проблему - он видит только те Entity, которые непосредственно лежат в src\Entity. А если во вложенных папках - хана сущностям (к примеру, namespace App\Entity\Structure)...
    Это печалит... Будем ждать следующих версий.

  • @data-center-project
    @data-center-project 2 ปีที่แล้ว

    Получается: задача клиента, зарегаться/залогиниться и передавать в запросах заголовки Authorization и refresh_token, в случае если токен протух сервер так ответил, клиент делает запрос на api рефреша, получает по своему рефреш-токену новый токен и рефреш-токен, обновляет свои заголовки и повторяет последний неудачный запрос на котором сервер вернул ответ протухшего токена.
    Для конечного пользователя этот механизм должен быть скрыт.

    • @eazy-dev
      @eazy-dev  2 ปีที่แล้ว

      Не хватает запятых, не очень пониманию) клиент передает только authorization. Рефреш передается только в 1 сценарии. Не понимаю почему получение новой пары токенов по рефрешу должно быть скрыто от клиента)) это его прямая обязанность - получить токен для работы)) как он это сделает - логином по юзеру и паролю или по Рефреш токену совершенно не важно. Разные механики авторизации.

    • @data-center-project
      @data-center-project 2 ปีที่แล้ว

      @@eazy-dev понял, был немного не прав! Благодарю!

  • @ЕвгенийЗубков-б7о
    @ЕвгенийЗубков-б7о ปีที่แล้ว

    Странно, пишет что refresh_jwt не должен быть в firewals.api - Unrecognized option "refresh_jwt" under "security.firewalls.api". Available options are

  • @ЕвгенийЗубков-б7о
    @ЕвгенийЗубков-б7о ปีที่แล้ว

    gesdinet_jwt_refresh_token:
    token_parameter_name: refresh_token
    если при рефреш 401 вылетает

  • @data-center-project
    @data-center-project 2 ปีที่แล้ว

    Чем лучше использование HasLifecycleCallbacks для установки времени $createdAt, чем конструктора ? (RefreshToken entity)

    • @eazy-dev
      @eazy-dev  2 ปีที่แล้ว

      Да по большому счету без разницы.