Laravel создание Блога 28. Отправление письма с подтверждением учетной записи Email verification

Поделиться
HTML-код
  • Опубликовано: 7 сен 2024
  • Стань спонсором(бусти аккаунт), доступ к собеседованиям:
    boosty.to/lara...
    Мои платные курсы:
    laravelcreativ...
    План развития с нуля до middle+:
    laravelcreativ...
    Группа вк:
    laravel...
    - Ссылка для донатов, спонсорства, пожертвований
    yoomoney.ru/to...
    www.donational...
    - -
    . ---
    В этом видео реализуем отправку письма для подтверждения учетной записи, как для зарегистрированных пользователей, так и для созданных в админке

Комментарии • 51

  • @e314max
    @e314max 6 месяцев назад +2

    Это была битва не на жизнь, а на смерть. Делаю на Laravel 10. Всё получилось. Просидел 2 часа с этим 5-минутным видосом))
    За урок большое спасибо!

    • @furious9398
      @furious9398 6 месяцев назад

      Видео отличное, в плане обучения. Но, не завидую тем, кто будет это делать на Ларавеле 11-12)

    • @MrBenedig
      @MrBenedig 9 дней назад

      @@furious9398 на 11 версии нормально)

  • @twoon2988
    @twoon2988 3 года назад +9

    Друг! искренне хочу поблагодарить тебя за то что ты делаешь! Спасибо!

    • @laravelcreative
      @laravelcreative  3 года назад +3

      Всегда пожалуйста!) Спасибо большое!:)

  • @vimitali7630
    @vimitali7630 2 года назад +4

    Спасибо, за урок! Очень крутая и простая подача материала! Лучший курс по Laravel в разрезе создания блога! Совместно с "базовыми курсами" от автора - вообще ТОП! Автор огромная тебе благодарность и низкий поклон за труды.

    • @laravelcreative
      @laravelcreative  2 года назад +2

      Благодарю, спасибо большое)!)!

  • @user-uh1rm8py7b
    @user-uh1rm8py7b 2 года назад +2

    Спасибо, как всегда полезно

  • @user-wh9yb1rr3i
    @user-wh9yb1rr3i 2 года назад +1

    Благодарю за урок

  • @olegkostyuk3537
    @olegkostyuk3537 3 года назад

    Поддерживаю, спасибо !

  • @user-fq4wx7mv2g
    @user-fq4wx7mv2g Год назад

    спасибо большое

  • @user-vn5pb3kk4n
    @user-vn5pb3kk4n Год назад +1

    У кого ошибка mb_strcut(). Установите модуль sudo apt-get install php-mbstring и перезайдите в систему.

  • @alexandr9900
    @alexandr9900 2 года назад +1

    камент для продвижения

  • @user-el1vx9lf6j
    @user-el1vx9lf6j 6 месяцев назад

    Автор! В целом уроки полезные, но много неточностей, которые порождают непонятные проблемы. В частности не упомянута установка laravel/ui, после строчки добавки event должно следовать Auth::login($user); и т.д. и т.п. Повнимательней к деталям!

  • @maou842
    @maou842 Год назад +3

    если создавать пользователя через стандартный register, то мускул выдаст ошибку, т.к. не будет присвоена роль. можно добавить после с дефолтным значением роли в registercontroller метод create, но админа делать дефолтным при регистрации это глупо, по дефолту надо ставить роль читателя, соответственно руты админа мы уже доступа иметь не будем. чтобы все заработало как надо придется нормально так порефакторить, в т.ч. шаблоны блейда.

  • @DamayitaDas
    @DamayitaDas Год назад

    Здесь правильнее было бы в роутах сначала делать проверку 'verified' перед админом. Потому что страницу может запустить Читатель, и тогда сообщение MustVerify он не увидит.
    Мой вариант:
    'middleware'=>['auth', 'verified', 'admin_mdl']

    • @artem-web-developer
      @artem-web-developer Год назад

      тогда читатель увидит, что есть какая-то страница /admin, а ему туда не надо пробовать заходить, а так сразу 404 и все, пусть идет на главную

  • @luckyalexandr
    @luckyalexandr 2 года назад +2

    Спасибо за урок
    Только верификация не срабатывает...
    Письмо есть, после нажатия перекидывает на /login и в базе в поле email_verified_at по прежнему null

    • @dimongeneral
      @dimongeneral 2 года назад

      как-то решили проблему?

    • @luckyalexandr
      @luckyalexandr 2 года назад

      @@dimongeneral еще нет

    • @luckyalexandr
      @luckyalexandr Год назад

      @@dimongeneral видимо, проблема была в Laravel 9 т.к. оказалось, что она не LTS и перестала ставиться по умолчанию.
      А по новой начал учиться, поставилась 8-я версия и все нормально проходит и срабатывает

    • @user-ge1lp8gw4r
      @user-ge1lp8gw4r Год назад

      @@luckyalexandr на восьмёрке как? Решил проблему? Тоже мучаюсь с этим же.

  • @user-jq3hi7bu6q
    @user-jq3hi7bu6q 2 месяца назад

    у меня вопрос, а что если пользователь прервал регистрацию и не подтвердил почту. он так и останется в бд? я хочу сделать регистрацию только после подтверждения почты, но отправка письма возможна только после создания пользователя

  • @Olegcowboyoleg
    @Olegcowboyoleg 5 месяцев назад

    Да нихрена мы с задачей не справились.
    Symfony \ Component \ Mailer \ Exception \ TransportException
    Connection to "process /usr/sbin/sendmail -bs" has been closed unexpectedly
    письмо перестало приходить. а при попытке повторно выслать пишет вот такое. И всё. тупик.

  • @user-yd5sn2fj2t
    @user-yd5sn2fj2t Год назад +1

    Не работает несколько миддлверов. 'middleware' => ['auth', 'admin', 'verified'] с такой ситуацией пропускает всех, лишь бы был авторизован. Т.е. работает первый миддл. Если поменять местами, например ['admin', 'auth', 'verified'], тогда админ миделваер работает. Несколько мидлов работает только на один роут, например Route::get(//////////)->middleware([1,2,3]). При Route::group(/////)->middleware([1,2,3]) так не работает. Да и вообще про Роут::групп в документании ни слова. Как о нём узнали вообще? Случайно кто-то набрал, и понял, что оно работает? Вот почему не описать в доке это? И поэтому разработка является не придумыванием чего-то нового и интересного, а поиском и придумыванием того, что уже есть.

    • @user-yd5sn2fj2t
      @user-yd5sn2fj2t Год назад +1

      В общем работает если прописать вот так
      Route::middleware(['auth', 'admin', 'verified'])->group(function () {
      Route::group(['prefix' => 'admin'], function () {
      Route::get('/', AdminIndex::class);
      Route::get('/create', AdminCreate::class);
      //////////////
      //////////////
      });
      });

    • @laravelcreative
      @laravelcreative  Год назад

      Благодарю!)

    • @augcat50
      @augcat50 Год назад +1

      Хм, этот комментарий следовало бы закрепить.

  • @ZigZagUdachich
    @ZigZagUdachich Год назад

    Добрый день! А как вообще сайт понимает что по ссылке перешёл именно тот пользователь и вообще откуда он понимает что был переход по ссылке. Интересен сам механизм. Ведь одно дело отрпавлять данные через форму на определённый скрипт где тот в зависимости от полученных значений, заранее оговорёных полей, выполняет те или иные действия. Это в случае с методом пост. С гетом ещё проще все параметры видны непосредственно в адресе после амперсанда. Это всё предельно понятно. А вот как на самом деле происходит с сылкой? Она ведь и полей никаких не передаёт и параметров у неё нет после амперсанда, да и самого амперсанда тоже может и не быть. Это первый момент. И второй момент вытекающий из первого, как получается что сначало когда перенаправление было на home переход по ссылке вернул 404 страницу т.к. страницы home - не существует, а когда целевая страница была заменена на "\", то повторный переход по той же ссылке вернул уже главную страницу? Ведь текст ссылки не менялся, да и не мог измениться так как ссылка находилась в письме которое уже было доставлено и следовательно никак не могло измениться.

    • @artem-web-developer
      @artem-web-developer Год назад

      в сессии хранится информация о текущем пользователе, кто авторизован.
      Когда переходишь по ссылку на верификацию майла, то там гет параметр, это хэш наверное какой-то пользователя (например почта), потому что поля verify_hash в таблице user нет. И получается ты переходишь по этой ссылке, ларавел извлекает пользователя из этого хэша(который в ссылке), смотрит что в данный момент пользователь уже авторизован и этот авторизованный пользователь не совпадает с тем, кого извлекли из хэша в ссылке
      Надеюсь более менее нормально объяснил)

  • @Kwadik
    @Kwadik Год назад +1

    Помимо 'middleware' => ['auth', 'admin', 'verified'] еще добавил имплемент. Заработало
    --------
    Does the user you're testing have a null email_verified_at field in the database?
    Have you added implements MustVerifyEmail within the user model?
    class User extends Authenticatable implements MustVerifyEmail
    Did you set verify to true in your routes/web.php?
    Auth::routes(['verify' => true]);
    You've added the middleware properly to the routes, so that isn't the issue.
    Other than that we don't have much information to go off.

  • @user-jb9ul8hi6o
    @user-jb9ul8hi6o 2 года назад

    Добрый день! Почему-то вместо verify прилетает "Ваш пароль" с прошлого урока

  • @user-qd6hj2fn4w
    @user-qd6hj2fn4w 2 года назад

    2:37 перекидывает на страницу /login, вместо /home и не появляется запись в таблице users в столбце email_verified_at

    • @laravelcreative
      @laravelcreative  2 года назад +1

      Так, а код ошибки или что-то такое есть?)

    • @theonlyway4732
      @theonlyway4732 2 года назад +2

      Доброго времени суток! Та же проблема! При подтверждении пользователя через письмо - email_verified_at остается Null, перекидывает на страницу /login. Ошибки не выдает. Есть какие-либо мысли по данному поводу? Заранее спасибо!

    • @dimongeneral
      @dimongeneral 2 года назад

      @@theonlyway4732 вы решили как-то эту проблему?

  • @king_triton
    @king_triton 2 года назад

    спасибо за годный контент!
    такая проблемсссс...
    прописал Auth::routes(['verify' => true]); и 'middleware' => ['auth', 'admin', 'verified']
    и не редиректит, как пускал на страницы так и пускает, но в route:list отображается, что попасть может только подтвержденный юзер, хз как быть и что делать...

  • @Mr.Capone-
    @Mr.Capone- 3 года назад

    а где менять дизайн письма со ссылкой активации?

    • @laravelcreative
      @laravelcreative  3 года назад +3

      Пропиши эту команду php artisan vendor:publish --tag=laravel-mail
      И у тебя появится в resources папка vendor а в ней mail, и там письмо разбито на части(кнопка, текст и т.д.). Вносишь изменения и всё.

    • @Mr.Capone-
      @Mr.Capone- 3 года назад

      @@laravelcreative Благодарю!)))

  • @nonnull7352
    @nonnull7352 2 года назад

    Route [verification.verify] not defined. выдает такую ошибку. что может быть?
    пользователь регистрируется, но письмо о подтверждении не приходит

    • @laravelcreative
      @laravelcreative  2 года назад +2

      Auth::routes(['verify' => true]);
      Вот это надо добавить

    • @nonnull7352
      @nonnull7352 2 года назад +1

      @@laravelcreative оно добавлено было, пока я убрал верификацию

    • @laravelcreative
      @laravelcreative  2 года назад +2

      Хм. так сложно сказать, надо видеть код, что-то упущено

    • @nonnull7352
      @nonnull7352 2 года назад

      @@laravelcreative как сделать просмотр постов через личный кабинет пользователя, через комментарии, т.е ссылаться на тот пост на котором оставил комент

    • @laravelcreative
      @laravelcreative  2 года назад

      Нужно прописывать релейшны. У каждого комментария есть пост. Соответственно, через релейшн вытягивать айдишник поста, вызывать по имени роут "одиночного" поста и туда вкладывать этот айдишник. СОбственно всё:)