3711a92958
PhoneNormalizer (RU-телефон → 7XXXXXXXXXX) + Mailable RegisterEmailVerificationCode с 6-значным кодом + эндпоинты register/start|verify|resend: pending-регистрация в сессии (паттерн 2FA), email_verified_at=now() при verify, rate-limit на start + cooldown 60с на resend, лимит 5 попыток ввода кода. Телефон обязателен, нормализуется в 7XXXXXXXXXX. deptrac: разрешён Request→Service. Старый одношаговый register пока сохранён (удаляется отдельной задачей Task 6). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
31 lines
708 B
PHP
31 lines
708 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Http\Requests\Auth;
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
|
|
/**
|
|
* Валидация шага 2 регистрации (POST /api/auth/register/verify).
|
|
*/
|
|
class RegisterVerifyRequest extends FormRequest
|
|
{
|
|
/** @return array<string, mixed> */
|
|
public function rules(): array
|
|
{
|
|
return [
|
|
'code' => ['required', 'string', 'regex:/^\d{6}$/'],
|
|
];
|
|
}
|
|
|
|
/** @return array<string, string> */
|
|
public function messages(): array
|
|
{
|
|
return [
|
|
'code.required' => 'Введите код из письма.',
|
|
'code.regex' => 'Код состоит из 6 цифр.',
|
|
];
|
|
}
|
|
}
|