PHPackages                             sashagm/social - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. sashagm/social

ActiveLibrary[Testing &amp; Quality](/categories/testing)

sashagm/social
==============

Авторизация через социальные сети с помощью пакета для Laravel +10.x

1.44.3(1y ago)028MITPHPPHP ^8.0

Since Jun 7Pushed 1y ago1 watchersCompare

[ Source](https://github.com/sashagm/social)[ Packagist](https://packagist.org/packages/sashagm/social)[ RSS](/packages/sashagm-social/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (3)Versions (63)Used By (0)

[![Laravel Logo](https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg)](https://laravel.com)

[![Total Downloads](https://camo.githubusercontent.com/3d098642d5e72362a5dbd2a7b7db39e30f91f9157097793204ee2ee2f6a6cc3d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7361736861676d2f736f6369616c)](https://packagist.org/packages/sashagm/social)[![Latest Stable Version](https://camo.githubusercontent.com/10f2c44e8a65c9b982e7c047b33a17a3fc35e6b967191afdbcc95f2ea9c7c480/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7361736861676d2f736f6369616c)](https://packagist.org/packages/sashagm/social)[![License](https://camo.githubusercontent.com/d36eb647435c3527f09ab2be69d1779c56d01d185cb862e0e3fd823bf38d784b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7361736861676d2f736f6369616c)](https://packagist.org/packages/sashagm/social)[![Code size](https://camo.githubusercontent.com/ca32691078b5ee7fac5d210261109fec87092792c4acb023e1a9ad832b3db181/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f636f64652d73697a652f7361736861676d2f736f6369616c)](https://packagist.org/packages/sashagm/social)[![Code size](https://camo.githubusercontent.com/5d99721aafeddd88a71950dbd58734b3415bc79e8860284ffa3f71302dff5a41/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f73746172732f7361736861676d2f736f6369616c)](https://packagist.org/packages/sashagm/social)

[![PHP Version](https://camo.githubusercontent.com/2d8db17638478a10e3f421691ab607acf7433b1838e8d27b729078b6d7ba95cd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253242382d626c7565)](https://www.php.net/)[![Laravel Version](https://camo.githubusercontent.com/ac7bcd56dc398c4b976fabb8678d298e432a18e54308f82fc0cbdc09b42a3a4c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d25324231302d726564)](https://laravel.com/)

Авторизация через социальные сети с помощью пакета для Laravel
--------------------------------------------------------------

[](#авторизация-через-социальные-сети-с-помощью-пакета-для-laravel)

Наш пакет предоставляет удобный способ работы с авторизацией для вашего сайта с использованием Laravel Socialite. Так же есть и интегривованная альтернативная регистрация и авторизация через обычную форму. Простая интеграция позволяет быстро подключить необходимые провайдеры и использовать их. Расширенная кастомизация позволяет гибко настроить функционал под ваш проект без особых изменений.

### Оглавление:

[](#оглавление)

- [Требования](#%D1%82%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
- [Установка](#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0)
- [Использование](#%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
    - [Авторизация и регистрация](#%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8-%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F)
    - [Методы шифрования](#%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
    - [Фильтры генерации](#%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D1%8B-%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8)
    - [Длина пароля](#%D0%B4%D0%BB%D0%B8%D0%BD%D0%B0-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8F)
    - [Генерация пароля](#%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8F)
    - [Режим обслуживания](#%D1%80%D0%B5%D0%B6%D0%B8%D0%BC-%D0%BE%D0%B1%D1%81%D0%BB%D1%83%D0%B6%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
    - [Директивы](#%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B)
    - [Кастомные поля](#%D0%BA%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D1%8B%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8F)
    - [Локализация](#%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F)
    - [Запуск кастомных функций](#%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA-%D0%BA%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D1%8B%D1%85-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9)
    - [Кастомные маршруты](#%D0%BA%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D1%8B%D0%B5-%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D1%8B)
    - [Кастомный логер](#%D0%BA%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D1%8B%D0%B9-%D0%BB%D0%BE%D0%B3%D0%B5%D1%80)
- [Дополнительные возможности](#%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8)
- [Тестирование](#%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
- [Лицензия](#%D0%BB%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F)

#### Требования

[](#требования)

Основные требования для установки и корректной работы:

- `PHP` &gt;= 8.0
- `Laravel` &gt;= 10.x || 11.x
- `Composer` &gt;= 2.4.x

#### Установка

[](#установка)

Для установки пакета необходимо выполнить команды:

- composer require sashagm/social
- php artisan socials:install

#### Использование

[](#использование)

1. Для начала давайте определим нашу вспомогательную конфигурацию в `/config/socials.php`:

```
    'admin_prefix'              => '', // Префикс для маршрутов
    'isActive'                  => true,  // Доступ авторизации
    'isProvider'                => true,  // Проверка провайдера( запрет на использование одинаковых email)
    'isLoginForm'               => true,  // Разрешать авторизовываться через обычную форму

    'user'                      => [
        'table'                 => 'users', // Таблица пользователей
        'avatar'                => "img",  //  Поле для аватарок
        'pass_colum'            => "password",  // Поле пароля
        'table_after'           => "password",  // После какого поля будут добавлены новые поля
        'access_colum'          => 'isBanned',  // Поле для учета блокировки/группа или роль
        'access_value'          =>  1,  // Какое значение необходимо получить чтобы заблокировать доступ
        'name_colum'            => 'name', // Поле для логина
        'email_colum'           => 'email', // Поле для почты
        'auto_update'           =>  true,   // Разрешить пользователям обновлять данные от провайдеров
        'update_colum'          =>  'isUpdate', // Поле для обновлений данных
        'getAvatar'             => true, // Использовать аватарку пользователя из провайдера социальной сети
        'defaultAvatar'         => '/path/to/default/avatar.png', // Путь к дефолтной аватарке
        'check_field'           => 'id', // Поле для проверки активности социальных сетей.
    ],

    'genPass'                   => [
        'method'                => 'bcrypt', // Метод шифрования пароля
        'filter'                => 'number',   // Фильтр генерации пароля
        'length'                => 8,  // Количество знаков для генерации пароля
        'min'                   => 6,  // Минимальное количество знаков
        'max'                   => 10, // Максимальное количество знаков
        'stable_length'         => true,   // Стабильная генерация
        'secret'                => 'erb26vwu2', // Секретная фраза для метода md5
        'viewReg'               => true,     // Верхний регистр для метода md5
        'default_gen'           => true,    // Использовать default_pass как дефолтный пароль
        'default_pass'          => "123456", // Строка для дефолтного пароля
        'custom_string'         => "", // Свой набор символов и знаков
        'custom_hard'           => "", // Свой набор символов и знаков
        'custom_unique'         => "", // Свой набор символов и знаков
        'generation_stages'     => 10, // Сколько стадий генерации будет

    ],

    'redirect'                  => [
        'auth'                  => 'home', // редирект после авторизации укажите именной роут
        'logout'                => 'home', // редирект после выхода укажите именной роут
     ],

    'routes'                    => [
        'auth_login'            => [
                                    '/login/{provider}', // url на вызов провайдера
                                    'social-auth'        // route name
        ],
        'auth_login_callback'   => [
                                    '/login/{provider}/callback', // url на вызов коллбэк
                                    'social-callback'             // route name
        ],
        'social_logout'         => [
                                    '/logout/social',           // url на вызов выход с аккаунта
                                    'social-logout'             // route name
        ],
        'auth_login_form'       => [
                                        '/login',               // url на вызов формы входа
                                        'auth-login-form'      // route name
        ],
        'auth_login_form_callback'=> [
                                        '/login/auth',           // url на вызов коллбэк form
                                        'auth-login-form-callback'             // route name
        ],
    ],

    'custom_fields'             => [
        /*
        'phone'                 => '+1234567890',
        'address'               => '123 Main Street',
        */
    ],

    'access_admin'              => [
        /*
        1,
        */
    ],

    'feedback_before'                  => [

        /* [
             'class' => 'App\Services\Testing',
             'method' => 'one',
             'params' => []
         ],
         */
     ],

     'feedback_after'                  => [

        /* [
             'class' => 'App\Services\Testing',
             'method' => 'one',
             'params' => []
         ],
         */
     ],

     'feedback_register'                  => [

        /* [
             'class' => 'App\Services\Testing',
             'method' => 'one',
             'params' => []
         ],
         */
     ],

    'providers'                            => [
       /* 'vkontakte', 'github',
        */
     ],

    'logger'                        => [

        'method'                    => true,              // Использовать дефолтный вариант логирования(false - Кастомный логер)
        'path'                      => "logs/custom.log",  // Путь для кастомного логера

        'log_login'                 => true,               // Логировать успешую авторизацию
        'log_register'              => true,               // Логировать успешую регистрацию
    ],
```

2. Для модели `User` необходимо еще добавить наши новые поля которые будут дополнительно использоваться:

```
    protected $fillable = [
        'img',
        'provider',
        'provider_id',
        'isUpdate',
    ];
```

3. Выполните команду: `php artisan migrate` чтобы добавить вспомогательные поля в таблицу пользователей.
4. Для использования дополнительных провайдеров авторизации в Laravel Socialite, вы можете посетить сайт [socialiteproviders.com](https://socialiteproviders.com/). Здесь вы найдете список доступных провайдеров, а также инструкции по их установке и настройке.
5. Пример с подключённым провайдером ВК. Как только вы подключите провайдер добавьте маршрут в ваш blade шаблон.

```
@guest
 Вход через ВК
@endguest
```

##### Авторизация и регистрация

[](#авторизация-и-регистрация)

Вы можете использовать наш пакет не только для работы авторизации с провайдерами социальных сетей но и альтернативным способом через обычную форму они работают параллельно друг другу. В конфигрурационном файле `/config/socials.php` параметр `isLoginForm` будет разрешать авторизовываться через обычную форму авторизации. В разделе `genPass` параметр `method` так же отвечает за метод шифрования нашего пароля.

##### Методы шифрования

[](#методы-шифрования)

Мы не ограничеваемся в стандарном методе шифрования. Если используете другие методы шифрования, вы можете использовать как стандартный так и разные методы. Что позволяет использовать под разные проекты.

Доступные следующие методы шифрования пароля:

- `bcrypt`
- `md2` `md4` `md5`
- `password_hash`
- `sha1` `sha224` `sha256` `sha384` `sha512` `sha512/224` `sha512/256`
- `sha3-224` `sha3-256` `sha3-384` `sha3-512`
- `ripemd128` `ripemd160` `ripemd256` `ripemd320`
- `whirlpool`
- `tiger128,3` `tiger160,3` `tiger192,3` `tiger128,4` `tiger160,4` `tiger192,4`
- `snefru` `snefru256`
- `gost` `gost-crypto`
- `adler32`
- `crc32` `crc32b` `crc32c`
- `fnv132` `fnv1a32` `fnv164` `fnv1a64`
- `joaat`
- `murmur3a` `murmur3c` `murmur3f`
- `xxh32` `xxh64` `xxh3` `xxh128`
- `pbkdf2`
- `base64`

##### Режим обслуживания

[](#режим-обслуживания)

Если необходимо ограничить доступ к авторизации через социальные сети. Вы можете это легко сделать в конфигрурационном файле `/config/socials.php` за это отвечает параметр `isActive`. Но так же вы можете вашим Администраторам или Определенным лицам дать доступ всегда авторизоваться даже если активно огранеичение. Для этого в разделе `access_admin` укажите через запятую id пользователей из модели `User`. Для них всегда будет доступ.

```
    'access_admin'              => [
        /*
        1,
        2,
        */
    ],
```

##### Директивы

[](#директивы)

Мы добавили возможность использовать `Blade директивы` для удобства вы можете использовать список сссылок для авторизации через провайдеры. Просто добавьте директиву `@socials` где нибудь в html.

```

        @socials

```

Так же можно передавать свои классы и стили для ссылок `@socials(class="btn btn-primary", style="font-size: 16px; color: #ff2d20")`

```

        @socials(class="btn btn-primary", style="font-size: 16px; color: #ff2d20")

```

##### Кастомные поля

[](#кастомные-поля)

Если у вас в модели `User` используются много полей которые так же необходимо добавлять, вы можете так же добавить их в конфигрурационном файле `/config/socials.php` в разделе `custom_fields`. Они будут добавлены вместе с входными данными от провайдеров при создание нового пользователя.

```
    'custom_fields'             => [
        /*
        'phone'                 => '+1234567890',
        'address'               => '123 Main Street',
        */
    ],
```

Вы можете полность настроить абсалютно все названия полей которые используются. В разделе `user` так же можно настроить стоковые поля если у вас отличаются.

##### Фильтры генерации

[](#фильтры-генерации)

Вы можете использовать разные фильтры для генерации пароля чтобы создавать разные комбинации в конфигрурационном файле `/config/socials.php` в разделе `genPass` параметр `filter`.

Доступные фильтры для генерации:

- `string` Только английские буквы верхнего и нижнего регистра.
- `number` Только цифры.
- `hard` Только английские буквы верхнего и нижнего регистра а так же цифры.
- `hard-unique` Только английские буквы верхнего и нижнего регистра а так же цифры и спец символы.
- `rus-string` Только русские буквы верхнего и нижнего регистра.
- `rus-hard` Только русские буквы верхнего и нижнего регистра а так же цифры.
- `rus-unique` Только русские буквы верхнего и нижнего регистра а так же цифры и спец символы.
- `custom-string` Задайте свой уникальный вариант букв, знаков, символов. Параметр `custom_string`
- `custom-hard` Задайте свой уникальный вариант букв, знаков, символов. Параметр `custom_hard`
- `custom-unique` Задайте свой уникальный вариант букв, знаков, символов. Параметр `custom_unique`

Для тестирования можно задать свой собственный дефолтный пароль. Настроить можно в разделе `genPass` за это отвечает параметры: `default_gen` если `true` то будет использоваться строка `default_pass` в качестве вашего пароля, если `false` то будет рандомиться каждый раз новый пароль.

#### Длина пароля

[](#длина-пароля)

Для более защищённого пароля так же важно и его длина. Вы можете так же контрлировать его длину в конфигрурационном файле `/config/socials.php` в разделе `genPass`.

Варианты длины:

- `stable_length` true Стабильная генерация на основе значения `length`, false Рандомная генерация на основе рандома `min` и `max`.

#### Генерация пароля

[](#генерация-пароля)

Для более эффективной защиты и уникальности пароля вы можете запустить процесс генерации пароля. Перед шифрованием и созданием пользователя будет создаваться массив с большим количесвом паролей, результатом будет рандомно выбран один из массива. Чтобы изменить перейдите конфигрурационном файле `/config/socials.php` в разделе `genPass`. `generation_stages` отвечает за количество стадий генерации строк.

#### Локализация

[](#локализация)

Вы можете задавать свои переводы для переводных фраз. Чтобы редактировать их опубликуйте ресурсы пакета.

#### Запуск кастомных функций

[](#запуск-кастомных-функций)

Вы можете запускать свои кастомные функции до и после авторизации пользователя. Например если хотите использовать дополнительно `spatie permission` можно запустить фунцию которая выдасть роль пользователю после регистрации. Чтобы назначить функции в конфигрурационном файле `/config/socials.php` в разделе `feedback_before` (до начала) и `feedback_after` (после), `feedback_register` (после регистрации) Далее будет выполнена авторизации и редирект.

```
    'feedback_before'                  => [

        /* [
             'class' => 'App\Services\Testing',
             'method' => 'one',
             'params' => []
         ],

         */
     ],

     'feedback_after'                  => [

        /* [
             'class' => 'App\Services\Testing',
             'method' => 'one',
             'params' => []
         ],

         */
     ],

     'feedback_register'                  => [

        /* [
             'class' => 'App\Services\Testing',
             'method' => 'one',
             'params' => []
         ],

         */
     ],
```

#### Кастомные маршруты

[](#кастомные-маршруты)

Чтобы избежать любые конфликты с маршрутами и их именами можно задавать свои собственные. Для управления перейдите в конфигрурационном файле `/config/socials.php` в раздел `routes`. На данный момент можно управлять тремя роутами: `Вызов провайдера`, `Вызов коллбэка провайдера`, `выход с аккаунта`. Задайте для каждого роута свой url и имя роута.

```
    'routes'                    => [
        'auth_login'            => [
                                    '/login/{provider}', // url на вызов провайдера
                                    'social-auth'        // route name
        ],
        'auth_login_callback'   => [
                                    '/login/{provider}/callback', // url на вызов коллбэк
                                    'social-callback'             // route name
        ],
        'social_logout'         => [
                                    '/logout/social',           // url на вызов выход с аккаунта
                                    'social-logout'             // route name
        ]
    ],
```

#### Кастомный логер

[](#кастомный-логер)

Если вы не хотите использовать стандартный файл для логирования, вы можете использовать отдельный файл и записывать данные логов туда. Для управления перейдите в конфигрурационном файле `/config/socials.php` в раздел `logger`.

```
    'logger'                        => [

        'method'                    => true,              // Использовать дефолтный вариант логирования(false - Кастомный логер)
        'path'                      => "logs/custom.log",  // Путь для кастомного логера

        'log_login'                 => true,               // Логировать успешую авторизацию
        'log_register'              => true,               // Логировать успешую регистрацию
    ],
```

#### Дополнительные возможности

[](#дополнительные-возможности)

Наш пакет предоставляет ряд дополнительных возможностей, которые могут быть полезны при работе с уведомлениями:

- `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](LICENSE.md).

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance35

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 95.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~7 days

Recently: every ~74 days

Total

62

Last Release

614d ago

PHP version history (2 changes)1.0.0PHP ^7.3|^8.0

1.25.0PHP ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/6ed652aeb98c0dac110b4fc109d51f62f81f4975ecd85f6db6a5e35486dfc930?d=identicon)[sashagm](/maintainers/sashagm)

---

Top Contributors

[![example123](https://avatars.githubusercontent.com/u/87628?v=4)](https://github.com/example123 "example123 (61 commits)")[![sashagm](https://avatars.githubusercontent.com/u/74922473?v=4)](https://github.com/sashagm "sashagm (3 commits)")

---

Tags

authauthorizationlaravellaravel-middlewarelaravel-socialitepassword-generatorpaswordphpphpunitsocial

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/sashagm-social/health.svg)

```
[![Health](https://phpackages.com/badges/sashagm-social/health.svg)](https://phpackages.com/packages/sashagm-social)
```

###  Alternatives

[magento/magento2-functional-testing-framework

Magento2 Functional Testing Framework

15511.5M30](/packages/magento-magento2-functional-testing-framework)[ikwattro/guzzle-stereo

Guzzle Recorder for recording Request/Responses and replay them back in a Mock

782.6k1](/packages/ikwattro-guzzle-stereo)[truckersmp/steam-socialite

Laravel Socialite provider for Steam OpenID.

1516.7k](/packages/truckersmp-steam-socialite)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
