Laravel8 + Jetstream でパスワードの長さなど検証ルールを変更する方法がわかりにくかったので調べた結果を書いておきます。
答え
app/Actions/Fortify/PasswordValidationRules.php
を以下のように変更すればOK.
//(例)パスワードの長さを10文字以上にしたい場合
protected function passwordRules()
{
//return ['required', 'string', new Password, 'confirmed'];
return ['required', 'string', (new Password)->length(10), 'confirmed'];
}
他にもアッパーケースや記号を含ませたいなどは new Password
以下のメソッド呼び出しをデイジーチェーンでつないで
(new Password)->length(10)->requireUppercase()->requireNumeric()
とすれば良い。
どんなメソッドがあるかは、vendor/laravel/fortify/src/Rules/Password.php
で確認。
背景
Laravel8/Jetstream/Fortify のパスワード検証ルールの設定ファイルは、vendor/laravel/fortify/src/Rules/Password.php
.
このファイルを直接編集してもパスワード検証ルールの変更はできるが、vendor フォルダの下なのでこのファイルを直接編集してしまうと composer update
などララベルをアップデートした時に編集を上書きされてしまいます。
しかし、app
側でどうやって変更するのかがよくわからなかったので、今回の調査となった次第。
ドキュメント
ララベル本家のパスワード検証ドキュメント