Skip to content

Commit

Permalink
Добавлена возможность установить сток пароль
Browse files Browse the repository at this point in the history
  • Loading branch information
Sashagm committed Jun 14, 2023
1 parent 29b9556 commit 4c6aa47
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 50 deletions.
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,8 @@
'max' => 10, // Максимальное количество знаков
'stable_length' => true, // Стабильная генерация
'secret' => 'erb26vwu2', // Секретная фраза для метода md5
'default_gen' => true, // Использовать default_pass как дефолтный пароль
'default_pass' => "123456", // Строка для дефолтного пароля

],

Expand Down Expand Up @@ -151,14 +153,15 @@

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

Если у вас в модели `User` используются много полей которые так же необходимо добавлять, вы можете так же добавить их в конфигрурационном файле `/config/socials.php` в разделе `custom_fields`. Они будут добавлены вместе с входными данными от провайдеров при создание нового пользователя.
Если у вас в модели `User` используются много полей которые так же необходимо добавлять, вы можете так же добавить их в конфигрурационном файле `/config/socials.php` в разделе `custom_fields`. Они будут добавлены вместе с входными данными от провайдеров при создание нового пользователя. Так же вы можете передавать не только строки но и переменые. Но они должны быть в поле доступности, например можно задать поле `nickname` передать туда `$socialUser->getNickname()` входные параметры от провайдеров.

```php

'custom_fields' => [
/*
'phone' => '+1234567890',
'address' => '123 Main Street',
'nickname' => $socialUser->getNickname() ?? NULL,
*/
],

Expand All @@ -181,6 +184,9 @@
- `rus-hard` Только русские буквы верхнего и нижнего регистра а так же цифры.
- `rus-unique` Только русские буквы верхнего и нижнего регистра а так же цифры и спец символы.

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


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

Expand Down
108 changes: 59 additions & 49 deletions src/Http/Controllers/LoginController.php
Original file line number Diff line number Diff line change
Expand Up @@ -135,58 +135,68 @@ private function generatePass()

private function generateString($filter)
{
switch ($filter) {

case 'string':
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;

case 'number':
$characters = '0123456789';
break;

case 'hard':
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
break;

case 'hard-unique':
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_-+=[]{}|:;<>,.?/~';
break;

case 'rus-string':
$characters = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
break;

case 'rus-hard':
$characters = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ0123456789';
break;

case 'rus-unique':
$characters = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ0123456789!@#$%^&*()_-+=[]{}|:;<>,.?/~';
break;

default:
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
break;
}

$minLength = config('socials.genPass.min');
$maxLength = config('socials.genPass.max');
$stableLength = config('socials.genPass.stable_length');


if(config('socials.genPass.default_gen')) {

if ($stableLength) {
$length = config('socials.genPass.length');
} else {
$length = rand($minLength, $maxLength);
}
return config('socials.genPass.default_pass');

} else
{
switch ($filter) {

$string = '';
for ($i = 0; $i < $length; $i++) {
$string .= $characters[rand(0, strlen($characters) - 1)];
}
return $string;
case 'string':
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;

case 'number':
$characters = '0123456789';
break;

case 'hard':
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
break;

case 'hard-unique':
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_-+=[]{}|:;<>,.?/~';
break;

case 'rus-string':
$characters = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
break;

case 'rus-hard':
$characters = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ0123456789';
break;

case 'rus-unique':
$characters = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ0123456789!@#$%^&*()_-+=[]{}|:;<>,.?/~';
break;

default:
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
break;
}

$minLength = config('socials.genPass.min');
$maxLength = config('socials.genPass.max');
$stableLength = config('socials.genPass.stable_length');


if ($stableLength) {
$length = config('socials.genPass.length');
} else {
$length = rand($minLength, $maxLength);
}


$string = '';
for ($i = 0; $i < $length; $i++) {
$string .= $characters[rand(0, strlen($characters) - 1)];
}
return $string;
}


}

private function checkProvider($user, $provider)
Expand Down
2 changes: 2 additions & 0 deletions src/config/socials.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
'max' => 10, // Максимальное количество знаков
'stable_length' => true, // Стабильная генерация
'secret' => 'erb26vwu2', // Секретная фраза для метода md5
'default_gen' => true, // Использовать default_pass как дефолтный пароль
'default_pass' => "123456", // Строка для дефолтного пароля

],

Expand Down

0 comments on commit 4c6aa47

Please sign in to comment.