9

Скидання та відновлення пароля для кількох таблиць в Ларавел (Laravel)

Скидання та відновлення пароля для кількох таблиць в Ларавел (Laravel)

Як виявилося, що документація Laravel про це замовчує чи дає дуже поверхове уявлення. Необхідність мати різні таблиці sql для аутентифікації наприклад одну для користувачів адміністрації, а іншу для відвідувачів сайту або веб-додатку (api) досить часто зустрічається. Скидання та відновлення пароля для цих таблиць у Laravel так само відповідно має бути передбачене.

У цьому посібнику будуть розглянуті методи для актуальних на сьогоднішній день версій Laravel 8 – 9.

Зіткнувшись із завданням по відновленню пароля для кількох таблиць у Ларавел (Laravel) нам довелося витратити багато часу на пошуки та вирішення цього завдання, як правило поради, які ми знаходили були або сильно застарілими або абсолютно неправильними. Навіть у добре відомій Laracasts на це питання нам не дали розумного пояснення.

Якщо автентифікація для безлічі таблиць в Laravel вирішується за допомогою Guard, то для скидання та відновлення пароля потрібен інший підхід.

Але вирішення цього завдання існує і воно виявилося простим. Ми хочемо поділитися ним з вами, щоб ви заощадили свій час і сили.

Потрібна початкова підготовка файлів

Ми припускаємо, що ви вже створили другу таблицю на основі запропонованої Laravel (users) у прикладі буде використовуватись таблиця з назвою (admins).

Якщо ви не створили модель то це необхідно зробити наприклад на основі існуючої (User), важливе зауваження ваша модель повинна включати всі простори імен і трейти (User). У прикладі ми використовуватимемо ім'я для моделі (Admin).

І окрему таблицю для тимчасового зберігання (Token), наприклад, на основі password_resets, у прикладі використовується назва admin_resets.

Відповідно необхідно заповнити хоча б одне поле таблиці (Admin) для роботи з ним на цьому початкова підготовка завершена.

Додавання guards, providers, passwords

Перейдіть у файл шляхом: config/auth.php

Знайдіть розділ (guards) та додайте:

Додавання guards у Laravel

Перейдіть до розділу (providers) і додайте такі записи:

Додавання providers у Laravel

Знайдіть розділ (passwords), тут будуть вказані таблиці для тимчасового зберігання (Token). Також можна вказати максимальний час після якого (Token) буде видалено, за замовчуванням (expire = 60 ) - одну годину.

Додавання password broker() у Laravel

Визначення маршрутів (routs) для скидання та відновлення пароля кількох таблиць у Ларавел (Laravel).

Для простоти використовуватиметься приклад взятий з документації Laravel.

Необхідно додати виклик методу (broker('admins')) у двох місцях коду він виділено. У параметр "broker" додати те ім'я, яке визначали у "passwords" у файлі (config/auth.php)

Визначення маршрутів Laravel 1
Визначення маршрутів Laravel 2
Визначення маршрутів Laravel 3
Визначення маршрутів Laravel 4
Визначення маршрутів Laravel 5

За вашим бажанням ми можемо зробити цю та безліч інших робіт з розробки сайтів та програм на Ларавел (Laravel).

Автор: Юрий Лысенко