Explore. Grow & Outshine

Laravel, Code

Validate mật khẩu trong Laravel – Validating Passwords

Validating Passwords

Để kiểm tra độ phức tạp của mật khẩu mà người dùng nhập vào bạn có thể sử dụng Password Rule đã tích hợp sẵn từ Laravel 8:

use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rules\Password;

$validator = Validator::make($request->all(), [
    'password' => ['required', 'confirmed', Password::min(8)],
]);

Password Rule cho phép dễ dàng thêm các yêu cầu về độ phức tạp của mật khẩu, như yêu cầu mật khẩu có ít nhất một chữ cái, số, ký hiệu hoặc phải có chữ viết hoa lẫn viết thường:

// Require at least 8 characters...
Password::min(8)

// Require at least one letter...
Password::min(8)->letters()

// Require at least one uppercase and one lowercase letter...
Password::min(8)->mixedCase()

// Require at least one number...
Password::min(8)->numbers()

// Require at least one symbol...
Password::min(8)->symbols()

Ngoài ra, có thể kiểm tra mật khẩu có bị  tiết lộ trong vụ các vụ rò rỉ dữ liệu mật khẩu được công khai hay không? Đương nhiên có sẽ không được sử dụng 😀 Bằng  uncompromised :

Password::min(8)->uncompromised()

Password Rule sử dụng k-Anonymous để xác định xem mật khẩu có bị rò rỉ hay không thông qua hasibeenpwned.com, để không ảnh hưởng đến quyền riêng tư hoặc bảo mật của người dùng.

Validating Password - Validate mật khẩu trong Laravel

Validating Password – Validate mật khẩu trong Laravel

Mặc định, nếu mật khẩu xuất hiện ít nhất một lần trong một lần rò rỉ dữ liệu, mật khẩu đó sẽ bị coi là bị xâm phạm. Bạn có thể tùy chỉnh ngưỡng này bằng cách truyền tham số vào uncompromised :

// Ensure the password appears less than 3 times in the same data leak...
Password::min(8)->uncompromised(3);

Tất nhiên có thể validate nhiều thứ cùng lúc 😀

Password::min(8)
    ->letters()
    ->mixedCase()
    ->numbers()
    ->symbols()
    ->uncompromised()

Cấu hình mặc định

Có thể thông qua ServiceProvider để cấu hình mặc định cho mật khẩu bằng Password :: defaults

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;
    });
}

Cách sử dụng

'password' => ['required', Password::defaults()],

 

Theo dõi
Thông báo của
guest
2 Góp ý
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
2
0
Rất thích suy nghĩ của bạn, hãy bình luận.x