Правило password
Правило password применяется к полям ввода пароля для проверки их сложности. Это правило особенно полезно при регистрации пользователей или смене пароля, так как позволяет гарантировать, что пароль соответствует современным стандартам безопасности. Правило принимает два параметра: минимальную длину пароля и флаг, указывающий, требуется ли включение специальных символов.
Синтаксис
<?php
'password' => ['required', 'password:min_length,letters,numbers,symbols']
?>
Параметры правила password:
min_length- минимальная длина пароля (по умолчанию 8)letters- наличие букв (по умолчанию true)numbers- наличие цифр (по умолчанию true)symbols- наличие специальных символов (по умолчанию false)
Пример
Давайте проверим пароль на минимальную длину 8 символов и наличие букв и цифр:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class UserController extends Controller
{
public function register(Request $request)
{
$validator = Validator::make($request->all(), [
'email' => ['required', 'email'],
'password' => ['required', 'password:8,letters,numbers'],
]);
if ($validator->fails()) {
$res = ['errors' => $validator->errors()];
echo json_encode($res);
return;
}
$res = ['message' => 'User registered successfully'];
echo json_encode($res);
}
}
?>
Результат выполнения кода при валидных данных:
{"message":"User registered successfully"}
Результат выполнения кода при невалидных данных:
{"errors":{"password":["The password must be at least 8 characters."]}}
Пример
Давайте проверим пароль на минимальную длину 10 символов и наличие букв, цифр и специальных символов:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class UserController extends Controller
{
public function updatePassword(Request $request)
{
$validator = Validator::make($request->all(), [
'current_password' => ['required', 'current_password'],
'password' => ['required', 'password:10,letters,numbers,symbols'],
'password_confirmation' => ['required', 'same:password'],
]);
if ($validator->fails()) {
$res = ['errors' => $validator->errors()];
echo json_encode($res);
return;
}
$res = ['message' => 'Password updated successfully'];
echo json_encode($res);
}
}
?>
Результат выполнения кода при валидных данных:
{"message":"Password updated successfully"}
Результат выполнения кода при невалидных данных:
{"errors":{"password":["The password must be at least 10 characters and contain at least one symbol."]}}
Пример
Давайте используем правило password в классе запроса FormRequest:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class RegisterRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'email' => ['required', 'email', 'unique:users'],
'password' => ['required', 'password:12,letters,numbers,symbols'],
];
}
}
?>
<?php
namespace App\Http\Controllers;
use App\Http\Requests\RegisterRequest;
class AuthController extends Controller
{
public function register(RegisterRequest $request)
{
$res = ['message' => 'User registered successfully'];
echo json_encode($res);
}
}
?>
Результат выполнения кода при валидных данных:
{"message":"User registered successfully"}
Смотрите также
-
правило
required,
которое проверяет обязательность поля -
правило
confirmed,
которое проверяет совпадение пароля с подтверждением -
правило
current_password,
которое проверяет совпадение с текущим паролем пользователя -
правило
min,
которое проверяет минимальное значение поля