Ознакомиться с механизмами аутентификации и авторизации в Laravel.
Установка показана в рабочем окружении OS Linux:
git clone git@github.com:BinaryStudioAcademy/bsa-2018-php-9.git
cd project-dir
composer install
cp .env.example .env
php artisan key:generate
- Добавить функциональность(миграции, модели и т.д) из домашнего задания по Views and Forms.
- Создать по роуту “/” главную страницу, содержащую текст: "Currency market".
Добавить возможность регистрации новых пользователей и аутентификации с помощью email и password.
- После аутентификации показывать пользователю страницу со списком валют /currencies.
- Закрыть доступ ко всем страницам, кроме главной для пользователей, не прошедших аутентификацию.
Добавить возможность аутентификации через социальную сеть или сервис, например, Фейсбук (Socialite, SocialiteProviders, etc.) Для этого нужно будет зарегистрировать приложение на используемом ресурсе и использовать предоставленные ключи внутри .env Laravel приложения.
Реализовать механизм авторизации с помощью ролей.
- Ролей должно быть 2: обычный пользователь и администратор.
- Для хранения роли нужно изменить миграцию для таблицы [users]: добавить флаг is_admin.
- Права доступа:
- Пользователь должен иметь доступ к страницам списка валют и отдельной валюты.
- Пользователь не должен видеть контролы для редактирования, удаления и добавления валюты.
- Пользователь не должен иметь доступа к соответствующим действиям(добавление, обновление, удаление).
- Администратор должен видеть контролы для редактирования, удаления и добавления валюты и иметь доступ к соответствующим действиям.
- В случае попытки неавторизованного доступа на любую из страниц - перенаправлять на (/login).
- Контроль прав доступа нужно реализовать в классах Policy.
- Проверка критерия предоставления доступа должна происходить в методах класса полиси. То есть в контроллерах в итоге должна быть проверка типа
if (Gate::denies(‘create', $post)) ...
вместо
if (Gate::denies(‘isAdmin', $post)) …
-
Создайте APP_URL в .env
-
Запустите тесты
php artisan dusk
Зайдите на виртуальную машину через ssh из папки, где установлен Homestead
vagrant ssh
Перейдите в директорию проекта и запустите
php artisan serve --host=192.168.10.10 --port=8080
Установите в '.env' строку
APP_URL=http://192.168.10.10:8080
Теперь можно запустить тесты.
php artisan dusk
см. https://laravel.com/docs/master/dusk
Примеры из лекции доступны здесь: https://github.com/Antarus66/Auth-samples