【Laravel8】JetStreamでパスワードポリシーを変更する
こんにちは。今回はJetStreamでパスワードポリシーを変更する方法を解説します。
パスワードポリシーとは
ユーザーが自身のアカウントのパスワードを設定する際に、満たさなくてはならないルールです。例えば8文字以上、大文字を含む、記号を含むなどです。ポリシーを設定する目的は、セキュリティを高めるためです。複雑なパスワードにするようポリシーを設定することで、アカウントの乗っ取りを防止することができます。
パスワードポリシーを設定する
パスワードポリシーは自前のバリデーションを記述することで設定することが可能です。しかし、JetStreamではパスワードポリシーを簡単に設定するためのメソッドが用意されているので、それを使います。編集するファイルはapp/Actions/Fortify/PasswordValidationRulesです。ここで設定したポリシーは、以下の機能に反映されます。
- ユーザー登録
- パスワード変更
- パスワードリセット
passwordRulesメソッドを編集します。初期状態では以下のルールとなっています。
- 必須入力
- 確認で再度入力したパスワードと一致していること
- パスワードは8桁以上入力必須
protected function passwordRules()
{
return ['required', 'string', new Password, 'confirmed'];
}
パスワードを10桁以上入力するポリシーに変更してみます。lengthメソッドを使用します。
protected function passwordRules()
{
$password = new Password();
$password->length(10);
return ['required', 'string', $password, 'confirmed'];
}
他にも以下のメソッドを利用可能です。
protected function passwordRules()
{
$password = new Password();
// 最低10桁の入力を求める
$password->length(10);
// 最低1文字の大文字が必要
$password->requireUppercase();
// 最低1文字の数字が必要
$password->requireNumeric();
// 最低1文字の記号が必要
$password->requireSpecialCharacter();
return ['required', 'string', $password, 'confirmed'];
}
どれも自前で書くと複雑になりがちなものですが、JetStreamを使うと1行で記述することができます。便利!
まとめ
今回はJetStreamでパスワードポリシーを設定する方法を解説しました。すごく便利なので使いましょう。以上!
ディスカッション
コメント一覧
まだ、コメントがありません