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

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

by Hồ Tân Tiến

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.

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()], 

 

You may also like

2 comments

Tam Le 22/05/2021 - 22:18

Bài viết rất hữu ích luônnnn

Reply
Nam 18/06/2021 - 19:06

Tks bạn

Reply

Leave a Comment