{"id":16809471,"url":"https://github.com/sashagm/social","last_synced_at":"2026-04-11T08:02:53.229Z","repository":{"id":173390186,"uuid":"650705963","full_name":"sashagm/social","owner":"sashagm","description":"Авторизация через социальные сети с помощью пакета для Laravel +10.x ","archived":false,"fork":false,"pushed_at":"2024-09-11T18:58:36.000Z","size":85,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-19T21:31:45.709Z","etag":null,"topics":["auth","authorization","laravel","laravel-middleware","laravel-socialite","password-generator","pasword","php","phpunit","social"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sashagm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-07T16:22:04.000Z","updated_at":"2025-04-14T08:14:21.000Z","dependencies_parsed_at":"2024-09-12T03:04:31.299Z","dependency_job_id":"e3063e39-0c42-46a1-9ce1-29babacbc27a","html_url":"https://github.com/sashagm/social","commit_stats":null,"previous_names":["sashagm/social"],"tags_count":62,"template":false,"template_full_name":null,"purl":"pkg:github/sashagm/social","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sashagm%2Fsocial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sashagm%2Fsocial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sashagm%2Fsocial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sashagm%2Fsocial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sashagm","download_url":"https://codeload.github.com/sashagm/social/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sashagm%2Fsocial/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31673068,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auth","authorization","laravel","laravel-middleware","laravel-socialite","password-generator","pasword","php","phpunit","social"],"created_at":"2024-10-13T10:12:51.905Z","updated_at":"2026-04-11T08:02:53.202Z","avatar_url":"https://github.com/sashagm.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003ca href=\"https://laravel.com\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg\" width=\"400\" alt=\"Laravel Logo\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\n\u003ca href=\"https://packagist.org/packages/sashagm/social\"\u003e\u003cimg src=\"https://img.shields.io/packagist/dt/sashagm/social\" alt=\"Total Downloads\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/sashagm/social\"\u003e\u003cimg src=\"https://img.shields.io/packagist/v/sashagm/social\" alt=\"Latest Stable Version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/sashagm/social\"\u003e\u003cimg src=\"https://img.shields.io/packagist/l/sashagm/social\" alt=\"License\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/sashagm/social\"\u003e\u003cimg src=\"https://img.shields.io/github/languages/code-size/sashagm/social\" alt=\"Code size\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/sashagm/social\"\u003e\u003cimg src=\"https://img.shields.io/packagist/stars/sashagm/social\" alt=\"Code size\"\u003e\u003c/a\u003e\n\n[![PHP Version](https://img.shields.io/badge/PHP-%2B8-blue)](https://www.php.net/)\n[![Laravel Version](https://img.shields.io/badge/Laravel-%2B10-red)](https://laravel.com/)\n\n\u003c/p\u003e\n\n## Авторизация через социальные сети с помощью пакета для Laravel\n\nНаш пакет предоставляет удобный способ работы с авторизацией для вашего сайта с использованием Laravel Socialite.\nТак же есть и интегривованная альтернативная регистрация и авторизация через обычную форму.\nПростая интеграция позволяет быстро подключить необходимые провайдеры и использовать их.\nРасширенная кастомизация позволяет гибко настроить функционал под ваш проект без особых изменений.\n\n### Оглавление:\n\n- [Требования](#требования)\n- [Установка](#установка)\n- [Использование](#использование)\n  - [Авторизация и регистрация](#авторизация-и-регистрация)\n  - [Методы шифрования](#методы-шифрования)\n  - [Фильтры генерации](#фильтры-генерации)\n  - [Длина пароля](#длина-пароля)\n  - [Генерация пароля](#генерация-пароля)\n  - [Режим обслуживания](#режим-обслуживания)\n  - [Директивы](#директивы)\n  - [Кастомные поля](#кастомные-поля)\n  - [Локализация](#локализация)\n  - [Запуск кастомных функций](#запуск-кастомных-функций)\n  - [Кастомные маршруты](#кастомные-маршруты)\n  - [Кастомный логер](#кастомный-логер)\n- [Дополнительные возможности](#дополнительные-возможности)\n- [Тестирование](#тестирование)\n- [Лицензия](#лицензия)\n\n#### Требования\n\nОсновные требования для установки и корректной работы:\n\n- `PHP` \u003e= 8.0\n- `Laravel` \u003e= 10.x || 11.x\n- `Composer` \u003e= 2.4.x\n\n#### Установка\n\nДля установки пакета необходимо выполнить команды:\n\n- composer require sashagm/social\n- php artisan socials:install\n\n#### Использование\n\n1. Для начала давайте определим нашу вспомогательную конфигурацию в `/config/socials.php`:\n\n```php\n\n    'admin_prefix'              =\u003e '', // Префикс для маршрутов\n    'isActive'                  =\u003e true,  // Доступ авторизации\n    'isProvider'                =\u003e true,  // Проверка провайдера( запрет на использование одинаковых email)\n    'isLoginForm'               =\u003e true,  // Разрешать авторизовываться через обычную форму\n\n    'user'                      =\u003e [\n        'table'                 =\u003e 'users', // Таблица пользователей\n        'avatar'                =\u003e \"img\",  //  Поле для аватарок\n        'pass_colum'            =\u003e \"password\",  // Поле пароля\n        'table_after'           =\u003e \"password\",  // После какого поля будут добавлены новые поля\n        'access_colum'          =\u003e 'isBanned',  // Поле для учета блокировки/группа или роль\n        'access_value'          =\u003e  1,  // Какое значение необходимо получить чтобы заблокировать доступ\n        'name_colum'            =\u003e 'name', // Поле для логина\n        'email_colum'           =\u003e 'email', // Поле для почты\n        'auto_update'           =\u003e  true,   // Разрешить пользователям обновлять данные от провайдеров\n        'update_colum'          =\u003e  'isUpdate', // Поле для обновлений данных\n        'getAvatar'             =\u003e true, // Использовать аватарку пользователя из провайдера социальной сети\n        'defaultAvatar'         =\u003e '/path/to/default/avatar.png', // Путь к дефолтной аватарке\n        'check_field'           =\u003e 'id', // Поле для проверки активности социальных сетей.\n    ],\n\n    'genPass'                   =\u003e [\n        'method'                =\u003e 'bcrypt', // Метод шифрования пароля\n        'filter'                =\u003e 'number',   // Фильтр генерации пароля\n        'length'                =\u003e 8,  // Количество знаков для генерации пароля\n        'min'                   =\u003e 6,  // Минимальное количество знаков\n        'max'                   =\u003e 10, // Максимальное количество знаков\n        'stable_length'         =\u003e true,   // Стабильная генерация\n        'secret'                =\u003e 'erb26vwu2', // Секретная фраза для метода md5\n        'viewReg'               =\u003e true,     // Верхний регистр для метода md5\n        'default_gen'           =\u003e true,    // Использовать default_pass как дефолтный пароль\n        'default_pass'          =\u003e \"123456\", // Строка для дефолтного пароля\n        'custom_string'         =\u003e \"\", // Свой набор символов и знаков\n        'custom_hard'           =\u003e \"\", // Свой набор символов и знаков\n        'custom_unique'         =\u003e \"\", // Свой набор символов и знаков\n        'generation_stages'     =\u003e 10, // Сколько стадий генерации будет\n\n    ],\n\n    'redirect'                  =\u003e [\n        'auth'                  =\u003e 'home', // редирект после авторизации укажите именной роут\n        'logout'                =\u003e 'home', // редирект после выхода укажите именной роут\n     ],\n\n    'routes'                    =\u003e [\n        'auth_login'            =\u003e [\n                                    '/login/{provider}', // url на вызов провайдера\n                                    'social-auth'        // route name\n        ],\n        'auth_login_callback'   =\u003e [\n                                    '/login/{provider}/callback', // url на вызов коллбэк\n                                    'social-callback'             // route name\n        ],\n        'social_logout'         =\u003e [\n                                    '/logout/social',           // url на вызов выход с аккаунта\n                                    'social-logout'             // route name\n        ],\n        'auth_login_form'       =\u003e [\n                                        '/login',               // url на вызов формы входа\n                                        'auth-login-form'      // route name\n        ],\n        'auth_login_form_callback'=\u003e [\n                                        '/login/auth',           // url на вызов коллбэк form\n                                        'auth-login-form-callback'             // route name\n        ],\n    ],\n\n    'custom_fields'             =\u003e [\n        /*\n        'phone'                 =\u003e '+1234567890',\n        'address'               =\u003e '123 Main Street',\n        */\n    ],\n\n    'access_admin'              =\u003e [\n        /*\n        1,\n        */\n    ],\n\n    'feedback_before'                  =\u003e [\n\n        /* [\n             'class' =\u003e 'App\\Services\\Testing',\n             'method' =\u003e 'one',\n             'params' =\u003e []\n         ],\n         */\n     ],\n\n\n     'feedback_after'                  =\u003e [\n\n        /* [\n             'class' =\u003e 'App\\Services\\Testing',\n             'method' =\u003e 'one',\n             'params' =\u003e []\n         ],\n         */\n     ],\n\n     'feedback_register'                  =\u003e [\n\n        /* [\n             'class' =\u003e 'App\\Services\\Testing',\n             'method' =\u003e 'one',\n             'params' =\u003e []\n         ],\n         */\n     ],\n\n    'providers'                            =\u003e [\n       /* 'vkontakte', 'github',\n        */\n     ],\n\n    'logger'                        =\u003e [\n\n        'method'                    =\u003e true,              // Использовать дефолтный вариант логирования(false - Кастомный логер)\n        'path'                      =\u003e \"logs/custom.log\",  // Путь для кастомного логера\n\n        'log_login'                 =\u003e true,               // Логировать успешую авторизацию\n        'log_register'              =\u003e true,               // Логировать успешую регистрацию\n    ],\n\n\n```\n\n2. Для модели `User` необходимо еще добавить наши новые поля которые будут дополнительно использоваться:\n\n```php\n\n    protected $fillable = [\n        'img',\n        'provider',\n        'provider_id',\n        'isUpdate',\n    ];\n\n```\n\n3. Выполните команду: `php artisan migrate` чтобы добавить вспомогательные поля в таблицу пользователей.\n\n4. Для использования дополнительных провайдеров авторизации в Laravel Socialite, вы можете посетить сайт [socialiteproviders.com](https://socialiteproviders.com/). Здесь вы найдете список доступных провайдеров, а также инструкции по их установке и настройке.\n\n5. Пример с подключённым провайдером ВК. Как только вы подключите провайдер добавьте маршрут в ваш blade шаблон.\n\n```php\n\n@guest\n\u003ca href=\"{{route('social-auth', 'vkontakte')}}\"\u003e Вход через ВК\u003c/a\u003e\n@endguest\n\n```\n\n##### Авторизация и регистрация\n\nВы можете использовать наш пакет не только для работы авторизации с провайдерами социальных сетей но и альтернативным способом через обычную форму они работают параллельно друг другу.\nВ конфигрурационном файле `/config/socials.php` параметр `isLoginForm` будет разрешать авторизовываться через обычную форму авторизации.\nВ разделе `genPass` параметр `method` так же отвечает за метод шифрования нашего пароля.\n\n##### Методы шифрования\n\nМы не ограничеваемся в стандарном методе шифрования. Если используете другие методы шифрования, вы можете использовать как стандартный так и разные методы. Что позволяет использовать под разные проекты.\n\nДоступные следующие методы шифрования пароля:\n\n- `bcrypt`\n- `md2` `md4` `md5`\n- `password_hash`\n- `sha1` `sha224` `sha256` `sha384` `sha512` `sha512/224` `sha512/256`\n- `sha3-224` `sha3-256` `sha3-384` `sha3-512`\n- `ripemd128` `ripemd160` `ripemd256` `ripemd320`\n- `whirlpool`\n- `tiger128,3` `tiger160,3` `tiger192,3` `tiger128,4` `tiger160,4` `tiger192,4`\n- `snefru` `snefru256`\n- `gost` `gost-crypto`\n- `adler32`\n- `crc32` `crc32b` `crc32c`\n- `fnv132` `fnv1a32` `fnv164` `fnv1a64`\n- `joaat`\n- `murmur3a` `murmur3c` `murmur3f`\n- `xxh32` `xxh64` `xxh3` `xxh128`\n- `pbkdf2`\n- `base64`\n\n##### Режим обслуживания\n\nЕсли необходимо ограничить доступ к авторизации через социальные сети. Вы можете это легко сделать в конфигрурационном файле `/config/socials.php` за это отвечает параметр `isActive`. Но так же вы можете вашим Администраторам или Определенным лицам дать доступ всегда авторизоваться даже если активно огранеичение. Для этого в разделе `access_admin` укажите через запятую id пользователей из модели `User`.\nДля них всегда будет доступ.\n\n```php\n\n    'access_admin'              =\u003e [\n        /*\n        1,\n        2,\n        */\n    ],\n\n```\n\n##### Директивы\n\nМы добавили возможность использовать `Blade директивы` для удобства вы можете использовать список сссылок для авторизации через провайдеры.\nПросто добавьте директиву `@socials` где нибудь в \u003cbody\u003e html.\n\n```php\n\u003cbody\u003e\n        @socials\n\u003c/body\u003e\n\n```\n\nТак же можно передавать свои классы и стили для ссылок `@socials(class=\"btn btn-primary\", style=\"font-size: 16px; color: #ff2d20\")`\n\n```php\n\u003cbody\u003e\n        @socials(class=\"btn btn-primary\", style=\"font-size: 16px; color: #ff2d20\")\n\u003c/body\u003e\n\n```\n\n##### Кастомные поля\n\nЕсли у вас в модели `User` используются много полей которые так же необходимо добавлять, вы можете так же добавить их в конфигрурационном файле `/config/socials.php` в разделе `custom_fields`. Они будут добавлены вместе с входными данными от провайдеров при создание нового пользователя.\n\n```php\n\n    'custom_fields'             =\u003e [\n        /*\n        'phone'                 =\u003e '+1234567890',\n        'address'               =\u003e '123 Main Street',\n        */\n    ],\n\n```\n\nВы можете полность настроить абсалютно все названия полей которые используются. В разделе `user` так же можно настроить стоковые поля если у вас отличаются.\n\n##### Фильтры генерации\n\nВы можете использовать разные фильтры для генерации пароля чтобы создавать разные комбинации в конфигрурационном файле `/config/socials.php` в разделе `genPass` параметр `filter`.\n\nДоступные фильтры для генерации:\n\n- `string` Только английские буквы верхнего и нижнего регистра.\n- `number` Только цифры.\n- `hard` Только английские буквы верхнего и нижнего регистра а так же цифры.\n- `hard-unique` Только английские буквы верхнего и нижнего регистра а так же цифры и спец символы.\n- `rus-string` Только русские буквы верхнего и нижнего регистра.\n- `rus-hard` Только русские буквы верхнего и нижнего регистра а так же цифры.\n- `rus-unique` Только русские буквы верхнего и нижнего регистра а так же цифры и спец символы.\n- `custom-string` Задайте свой уникальный вариант букв, знаков, символов. Параметр `custom_string`\n- `custom-hard` Задайте свой уникальный вариант букв, знаков, символов. Параметр `custom_hard`\n- `custom-unique` Задайте свой уникальный вариант букв, знаков, символов. Параметр `custom_unique`\n\nДля тестирования можно задать свой собственный дефолтный пароль. Настроить можно в разделе `genPass` за это отвечает параметры:\n`default_gen` если `true` то будет использоваться строка `default_pass` в качестве вашего пароля, если `false` то будет рандомиться каждый раз новый пароль.\n\n#### Длина пароля\n\nДля более защищённого пароля так же важно и его длина. Вы можете так же контрлировать его длину в конфигрурационном файле `/config/socials.php` в разделе `genPass`.\n\nВарианты длины:\n\n- `stable_length` true Стабильная генерация на основе значения `length`, false Рандомная генерация на основе рандома `min` и `max`.\n\n#### Генерация пароля\n\nДля более эффективной защиты и уникальности пароля вы можете запустить процесс генерации пароля. Перед шифрованием и созданием пользователя будет создаваться массив с большим количесвом паролей, результатом будет рандомно выбран один из массива.\nЧтобы изменить перейдите конфигрурационном файле `/config/socials.php` в разделе `genPass`.\n`generation_stages` отвечает за количество стадий генерации строк.\n\n#### Локализация\n\nВы можете задавать свои переводы для переводных фраз. Чтобы редактировать их опубликуйте ресурсы пакета.\n\n#### Запуск кастомных функций\n\nВы можете запускать свои кастомные функции до и после авторизации пользователя. Например если хотите использовать дополнительно `spatie permission` можно запустить фунцию которая выдасть роль пользователю после регистрации. Чтобы назначить функции в конфигрурационном файле `/config/socials.php` в разделе `feedback_before` (до начала) и `feedback_after` (после), `feedback_register` (после регистрации)\nДалее будет выполнена авторизации и редирект.\n\n```php\n\n    'feedback_before'                  =\u003e [\n\n        /* [\n             'class' =\u003e 'App\\Services\\Testing',\n             'method' =\u003e 'one',\n             'params' =\u003e []\n         ],\n\n         */\n     ],\n\n\n     'feedback_after'                  =\u003e [\n\n        /* [\n             'class' =\u003e 'App\\Services\\Testing',\n             'method' =\u003e 'one',\n             'params' =\u003e []\n         ],\n\n         */\n     ],\n\n     'feedback_register'                  =\u003e [\n\n        /* [\n             'class' =\u003e 'App\\Services\\Testing',\n             'method' =\u003e 'one',\n             'params' =\u003e []\n         ],\n\n         */\n     ],\n\n```\n\n#### Кастомные маршруты\n\nЧтобы избежать любые конфликты с маршрутами и их именами можно задавать свои собственные. Для управления перейдите в конфигрурационном файле `/config/socials.php` в раздел `routes`. На данный момент можно управлять тремя роутами: `Вызов провайдера`, `Вызов коллбэка провайдера`, `выход с аккаунта`. Задайте для каждого роута свой url и имя роута.\n\n```php\n\n    'routes'                    =\u003e [\n        'auth_login'            =\u003e [\n                                    '/login/{provider}', // url на вызов провайдера\n                                    'social-auth'        // route name\n        ],\n        'auth_login_callback'   =\u003e [\n                                    '/login/{provider}/callback', // url на вызов коллбэк\n                                    'social-callback'             // route name\n        ],\n        'social_logout'         =\u003e [\n                                    '/logout/social',           // url на вызов выход с аккаунта\n                                    'social-logout'             // route name\n        ]\n    ],\n\n```\n\n#### Кастомный логер\n\nЕсли вы не хотите использовать стандартный файл для логирования, вы можете использовать отдельный файл и записывать данные логов туда.\nДля управления перейдите в конфигрурационном файле `/config/socials.php` в раздел `logger`.\n\n```php\n\n    'logger'                        =\u003e [\n\n        'method'                    =\u003e true,              // Использовать дефолтный вариант логирования(false - Кастомный логер)\n        'path'                      =\u003e \"logs/custom.log\",  // Путь для кастомного логера\n\n        'log_login'                 =\u003e true,               // Логировать успешую авторизацию\n        'log_register'              =\u003e true,               // Логировать успешую регистрацию\n    ],\n\n```\n\n#### Дополнительные возможности\n\nНаш пакет предоставляет ряд дополнительных возможностей, которые могут быть полезны при работе с уведомлениями:\n\n- `php artisan socials:install` - Данная команда установит все необходимые файлы.\n- `php artisan socials:access {--u= : User search field  (ID)} {--a= : Access flag (0,1)}` - Данная команда может банить/разбанить пользователя.\n\n#### Тестирование\n\nДля проверки работоспособности можно выполнить специальную команду:\n\n- ./vendor/bin/phpunit --configuration phpunit.xml\n\n#### Лицензия\n\nSocial - это программное обеспечение с открытым исходным кодом, лицензированное по [MIT license](LICENSE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsashagm%2Fsocial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsashagm%2Fsocial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsashagm%2Fsocial/lists"}