РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
668 of 1392 menu

Метод password

Метод password класса Rule применяется для валидации паролей с проверкой их сложности. Он позволяет указать требования к длине, наличию цифр, букв в разных регистрах и специальных символов. Метод возвращает объект правила, который можно использовать в массиве правил валидации.

Синтаксис

<?php use Illuminate\Validation\Rule; Rule::password() ->min(8) ->letters() ->mixedCase() ->numbers() ->symbols() ->uncompromised(); ?>

Пример

Давайте создадим правило валидации для пароля с минимальной длиной 8 символов, который должен содержать буквы, цифры и хотя бы один специальный символ:

<?php use Illuminate\Validation\Rule; use Illuminate\Support\Facades\Validator; $rules = [ 'password' => [ 'required', 'string', Rule::password() ->min(8) ->letters() ->mixedCase() ->numbers() ->symbols() ] ]; $data = ['password' => 'Str0ng#Pass']; $validator = Validator::make($data, $rules); if ($validator->fails()) { echo $validator->errors()->first('password'); } else { echo "Password is valid"; } ?>

Результат выполнения кода:

"Password is valid"

Пример

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

<?php use Illuminate\Validation\Rule; use Illuminate\Support\Facades\Validator; $rules = [ 'password' => [ 'required', 'string', Rule::password() ->min(10) ->letters() ->numbers() ] ]; $data = ['password' => 'short']; $validator = Validator::make($data, $rules); if ($validator->fails()) { echo $validator->errors()->first('password'); } else { echo "Password is valid"; } ?>

Результат выполнения кода:

"The password must be at least 10 characters."

Пример

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

<?php use Illuminate\Validation\Rule; use Illuminate\Support\Facades\Validator; $rules = [ 'password' => [ 'required', 'string', Rule::password() ->min(8) ->letters() ->mixedCase() ->numbers() ->symbols() ->uncompromised() ] ]; $data = ['password' => 'Password123!']; $validator = Validator::make($data, $rules); if ($validator->fails()) { echo $validator->errors()->first('password'); } else { echo "Password is valid and secure"; } ?>

Результат выполнения кода:

"The given password has appeared in a data leak. Please choose a different password."

Пример

Давайте создадим контроллер регистрации с использованием всех методов проверки пароля:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Validation\Rule; use Illuminate\Support\Facades\Validator; use App\Models\User; class RegisterController extends Controller { public function register(Request $request) { $validator = Validator::make($request->all(), [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => [ 'required', 'string', 'confirmed', Rule::password() ->min(8) ->letters() ->mixedCase() ->numbers() ->symbols() ->uncompromised() ] ]); if ($validator->fails()) { return response()->json($validator->errors(), 422); } $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => bcrypt($request->password) ]); return response()->json(['message' => 'User created successfully'], 201); } } ?>

Смотрите также

  • метод confirmed,
    который проверяет совпадение двух полей
  • метод min,
    который задаёт минимальное значение поля
  • метод max,
    который задаёт максимальное значение поля
  • метод unique,
    который проверяет уникальность значения в таблице
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить