Download the PHP package sashagm/social without Composer
On this page you can find all versions of the php package sashagm/social. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download sashagm/social
More information about sashagm/social
Files in sashagm/social
Package social
Short Description Авторизация через социальные сети с помощью пакета для Laravel +10.x
License MIT
Informations about the package social
[](https://www.php.net/)
[](https://laravel.com/)
Авторизация через социальные сети с помощью пакета для Laravel
Наш пакет предоставляет удобный способ работы с авторизацией для вашего сайта с использованием Laravel Socialite. Так же есть и интегривованная альтернативная регистрация и авторизация через обычную форму. Простая интеграция позволяет быстро подключить необходимые провайдеры и использовать их. Расширенная кастомизация позволяет гибко настроить функционал под ваш проект без особых изменений.
Оглавление:
- Требования
- Установка
- Использование
- Авторизация и регистрация
- Методы шифрования
- Фильтры генерации
- Длина пароля
- Генерация пароля
- Режим обслуживания
- Директивы
- Кастомные поля
- Локализация
- Запуск кастомных функций
- Кастомные маршруты
- Кастомный логер
- Дополнительные возможности
- Тестирование
- Лицензия
Требования
Основные требования для установки и корректной работы:
PHP>= 8.0Laravel>= 10.x || 11.xComposer>= 2.4.x
Установка
Для установки пакета необходимо выполнить команды:
- composer require sashagm/social
- php artisan socials:install
Использование
-
Для начала давайте определим нашу вспомогательную конфигурацию в
/config/socials.php: -
Для модели
Userнеобходимо еще добавить наши новые поля которые будут дополнительно использоваться: -
Выполните команду:
php artisan migrateчтобы добавить вспомогательные поля в таблицу пользователей. -
Для использования дополнительных провайдеров авторизации в Laravel Socialite, вы можете посетить сайт socialiteproviders.com. Здесь вы найдете список доступных провайдеров, а также инструкции по их установке и настройке.
- Пример с подключённым провайдером ВК. Как только вы подключите провайдер добавьте маршрут в ваш blade шаблон.
Авторизация и регистрация
Вы можете использовать наш пакет не только для работы авторизации с провайдерами социальных сетей но и альтернативным способом через обычную форму они работают параллельно друг другу.
В конфигрурационном файле /config/socials.php параметр isLoginForm будет разрешать авторизовываться через обычную форму авторизации.
В разделе genPass параметр method так же отвечает за метод шифрования нашего пароля.
Методы шифрования
Мы не ограничеваемся в стандарном методе шифрования. Если используете другие методы шифрования, вы можете использовать как стандартный так и разные методы. Что позволяет использовать под разные проекты.
Доступные следующие методы шифрования пароля:
bcryptmd2md4md5password_hashsha1sha224sha256sha384sha512sha512/224sha512/256sha3-224sha3-256sha3-384sha3-512ripemd128ripemd160ripemd256ripemd320whirlpooltiger128,3tiger160,3tiger192,3tiger128,4tiger160,4tiger192,4snefrusnefru256gostgost-cryptoadler32crc32crc32bcrc32cfnv132fnv1a32fnv164fnv1a64joaatmurmur3amurmur3cmurmur3fxxh32xxh64xxh3xxh128pbkdf2base64
Режим обслуживания
Если необходимо ограничить доступ к авторизации через социальные сети. Вы можете это легко сделать в конфигрурационном файле /config/socials.php за это отвечает параметр isActive. Но так же вы можете вашим Администраторам или Определенным лицам дать доступ всегда авторизоваться даже если активно огранеичение. Для этого в разделе access_admin укажите через запятую id пользователей из модели User.
Для них всегда будет доступ.
Директивы
Мы добавили возможность использовать Blade директивы для удобства вы можете использовать список сссылок для авторизации через провайдеры.
Просто добавьте директиву @socials где нибудь в
Так же можно передавать свои классы и стили для ссылок @socials(class="btn btn-primary", style="font-size: 16px; color: #ff2d20")
Кастомные поля
Если у вас в модели User используются много полей которые так же необходимо добавлять, вы можете так же добавить их в конфигрурационном файле /config/socials.php в разделе custom_fields. Они будут добавлены вместе с входными данными от провайдеров при создание нового пользователя.
Вы можете полность настроить абсалютно все названия полей которые используются. В разделе user так же можно настроить стоковые поля если у вас отличаются.
Фильтры генерации
Вы можете использовать разные фильтры для генерации пароля чтобы создавать разные комбинации в конфигрурационном файле /config/socials.php в разделе genPass параметр filter.
Доступные фильтры для генерации:
stringТолько английские буквы верхнего и нижнего регистра.numberТолько цифры.hardТолько английские буквы верхнего и нижнего регистра а так же цифры.hard-uniqueТолько английские буквы верхнего и нижнего регистра а так же цифры и спец символы.rus-stringТолько русские буквы верхнего и нижнего регистра.rus-hardТолько русские буквы верхнего и нижнего регистра а так же цифры.rus-uniqueТолько русские буквы верхнего и нижнего регистра а так же цифры и спец символы.custom-stringЗадайте свой уникальный вариант букв, знаков, символов. Параметрcustom_stringcustom-hardЗадайте свой уникальный вариант букв, знаков, символов. Параметрcustom_hardcustom-uniqueЗадайте свой уникальный вариант букв, знаков, символов. Параметрcustom_unique
Для тестирования можно задать свой собственный дефолтный пароль. Настроить можно в разделе genPass за это отвечает параметры:
default_gen если true то будет использоваться строка default_pass в качестве вашего пароля, если false то будет рандомиться каждый раз новый пароль.
Длина пароля
Для более защищённого пароля так же важно и его длина. Вы можете так же контрлировать его длину в конфигрурационном файле /config/socials.php в разделе genPass.
Варианты длины:
stable_lengthtrue Стабильная генерация на основе значенияlength, false Рандомная генерация на основе рандомаminиmax.
Генерация пароля
Для более эффективной защиты и уникальности пароля вы можете запустить процесс генерации пароля. Перед шифрованием и созданием пользователя будет создаваться массив с большим количесвом паролей, результатом будет рандомно выбран один из массива.
Чтобы изменить перейдите конфигрурационном файле /config/socials.php в разделе genPass.
generation_stages отвечает за количество стадий генерации строк.
Локализация
Вы можете задавать свои переводы для переводных фраз. Чтобы редактировать их опубликуйте ресурсы пакета.
Запуск кастомных функций
Вы можете запускать свои кастомные функции до и после авторизации пользователя. Например если хотите использовать дополнительно spatie permission можно запустить фунцию которая выдасть роль пользователю после регистрации. Чтобы назначить функции в конфигрурационном файле /config/socials.php в разделе feedback_before (до начала) и feedback_after (после), feedback_register (после регистрации)
Далее будет выполнена авторизации и редирект.
Кастомные маршруты
Чтобы избежать любые конфликты с маршрутами и их именами можно задавать свои собственные. Для управления перейдите в конфигрурационном файле /config/socials.php в раздел routes. На данный момент можно управлять тремя роутами: Вызов провайдера, Вызов коллбэка провайдера, выход с аккаунта. Задайте для каждого роута свой url и имя роута.
Кастомный логер
Если вы не хотите использовать стандартный файл для логирования, вы можете использовать отдельный файл и записывать данные логов туда.
Для управления перейдите в конфигрурационном файле /config/socials.php в раздел logger.
Дополнительные возможности
Наш пакет предоставляет ряд дополнительных возможностей, которые могут быть полезны при работе с уведомлениями:
php artisan socials:install- Данная команда установит все необходимые файлы.php artisan socials:access {--u= : User search field (ID)} {--a= : Access flag (0,1)}- Данная команда может банить/разбанить пользователя.
Тестирование
Для проверки работоспособности можно выполнить специальную команду:
- ./vendor/bin/phpunit --configuration phpunit.xml
Лицензия
Social - это программное обеспечение с открытым исходным кодом, лицензированное по MIT license.