Cambiar los requisitos de contraseñas en Laravel
Por defecto, Laravel tiene unos requisitos de validación para las contraseñas. Por defecto, te requiere que sea de 8 caracteres, pero podemos definir reglas para ser mucho más estrictos.
Podemos definir esta configuración desde uno de nuestros Service Provider, como el AppServiceProvider:
use Illuminate\Validation\Rules\Password;
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Password::defaults(function () {
return Password::min(8)
->mixedCase()
->uncompromised();
});
}
Entre las reglas que podemos usar encontramos:
Password::min($nChars)
: Definir un mínimo de caracteresPassword::mixedCase()
: Al menos una letra minúscula y una mayúsculaPassword::numbers()
: Al menos un númeroPassword::symbols()
: Al menos un símboloPassword::uncompromised()
: Requiere que la contraseña no haya sido leakead en un hackeo global. Se comprobará de forma segura a través de https://haveibeenpwned.com/
Una de las cosas que podemos hacer es definir unas reglas distintas, más seguras, para nuestro entorno de producción:
use Illuminate\Validation\Rules\Password;
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Password::defaults(function () {
$rule = Password::min(8);
return $this->app->isProduction()
? $rule->mixedCase()->uncompromised()
: $rule;
});
}