Laravel/カスタムパスワードポリシーの実装

更新日 5日前(Asia/Tokyo) 更新者: y963@rogarithm

Laravel/カスタムパスワードポリシーの実装(の一例)

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\Validator;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     */
    public function register(): void
    {
        //
    }

    /**
     * Bootstrap any application services.
     */
    public function boot(): void
    {
        // カスタムのパスワードバリデーションルールを定義
        Validator::extend('custom_password_rule', function ($attribute, $value, $parameters, $validator) {
            // パスワードに小文字、大文字、数字、記号のうち3つ以上が含まれるかどうかをチェック

            // 小文字が含まれるかどうかをチェック            
            $hasAlphaLower = preg_match('/[a-z]/', $value);
            // 大文字が含まれるかどうかをチェック
            $hasAlphaUpper = preg_match('/[A-Z]/', $value);
            // 数字が含まれるかどうかをチェック
            $hasNumber = preg_match('/[0-9]/', $value);
            // 記号が含まれるかどうかをチェック
            $hasSymbol = preg_match('/[^A-Za-z0-9]/', $value);

            // 3つ以上の条件を満たしているかチェック
            $conditionsMet = ($hasAlphaLower + $hasAlphaUpper + $hasNumber + $hasSymbol) >= 3;

            // かつ、10文字以上
            return $conditionsMet && mb_strlen($value) >= 10;
        });
        
    }
}

ここで定義したcustom_password_ruleはLaravelアプリケーションのどこからでもバリデーションルールとして使える。

パス: Laravel/カスタムパスワードポリシーの実装.md
最終更新: 2025-11-30 22:22:44(Asia/Tokyo)