Laravel 8 quy tắc xác thực mật khẩu

Mật khẩu là dữ liệu quan trọng nhất trong bất kỳ cơ sở dữ liệu nào. Không nên lưu trữ bất kỳ mật khẩu nào nếu không có mã hóa phù hợp. Cảm ơn Laravel facade

// minimum 8 characters required
Password::min(8)
4 cung cấp cách mạnh mẽ để mã hóa mật khẩu

Điều quan trọng nữa là buộc người dùng sử dụng mật khẩu mạnh. Laravel cung cấp các quy tắc xác thực khác nhau buộc người dùng phải sử dụng mật khẩu đủ mạnh. Với Laravel 8, cung cấp quy tắc xác thực mật khẩu mặc định.  

Trong bài viết hướng dẫn này, chúng ta sẽ xem xét các loại phức tạp khác nhau trong việc xác thực mật khẩu

Để xác thực bất kỳ trường nào, hãy sử dụng phương thức xác thực của đối tượng

// minimum 8 characters required
Password::min(8)
5. Trong bộ điều khiển của bạn, hãy thêm phương thức
// minimum 8 characters required
Password::min(8)
6

use Illuminate\Validation\Rules\Password;

/**
 * store new user
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function store(Request $request)
{
    $validated = $request->validate([
        'email' => ['required']
        'password' => ['required', 'confirmed', Password::min(8)],
    ]);

    // store user data
}

Bạn đã biết xác thực 'bắt buộc' và xác nhận. được xác nhận sẽ xác nhận rằng cả

// minimum 8 characters required
Password::min(8)
7 và
// minimum 8 characters required
Password::min(8)
0 đều giống nhau. Với sự trợ giúp của
// minimum 8 characters required
Password::min(8)
1, bạn có thể xác thực độ phức tạp của mật khẩu

// minimum 8 characters required
Password::min(8)

Bạn cũng có thể xâu chuỗi nhiều phương thức hơn để tăng thêm độ phức tạp

// minimum 8 characters with at least one letter
Password::min(8)->letters()

// minimum 8 characters with at least one uppercase and one lowercase letter
Password::min(8)->mixedCase()

// minimum 8 characters with at least one number
Password::min(8)->numbers()

// minimum 8 characters with at least one symbol
Password::min(8)->symbols()

// password has not been compromised in a public password
Password::min(8)->uncompromised()

Thay vì xác định nhiều xác thực, bạn có thể xâu chuỗi nhiều phương thức trong một biểu thức

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

Nhưng điều gì sẽ xảy ra nếu bạn đang xác thực tất cả độ phức tạp nhiều lần trong một ứng dụng. Bạn phải sao chép-dán nó tất cả các cách. Thay vào đó, bạn có thể xác định tính hợp lệ này tại một nơi và gọi nó mọi lúc khi bạn yêu cầu

Laravel cũng cung cấp tính năng này. Thay vào đó, bạn có thể xác định tất cả các quy tắc này trong bất kỳ phương thức khởi động nào của nhà cung cấp dịch vụ. Ví dụ trong AppServiceProvider

Tham gia bản tin của tôi

Trong bài đăng này, bạn sẽ tìm hiểu cách triển khai mật khẩu mạnh của Laravel trong quy tắc xác thực. Bắt đầu với Laravel 8. x, chúng cung cấp cách triển khai dễ dàng hơn cho một mật khẩu mạnh mà không cần mã hóa thêm

 

Thông thường, khi chúng tôi tạo một thông tin đăng nhập đơn giản, chúng tôi chỉ xác thực độ dài tối thiểu của mật khẩu người dùng đã gửi nhưng nếu chúng tôi muốn có một tài khoản người dùng an toàn hơn, chúng tôi buộc họ phải cung cấp một mật khẩu khó gợi ý

 

Laravel 8 quy tắc xác thực mật khẩu

 

 

Mật khẩu có độ dài tối thiểu

Như bạn có thể thấy bên dưới, chúng tôi đã thêm lớp tĩnh

// minimum 8 characters required
Password::min(8)
8 với phương thức
// minimum 8 characters required
Password::min(8)
9. Điều này có nghĩa là mật khẩu phải có ít nhất 8 ký tự tối thiểu

 

 [
                'required',
                Password::min(8)
            ],
            'password_confirmation' => 'required|same:password'
        ];
    }
}

 

Mật khẩu chứa ít nhất 1 chữ cái

Ví dụ tiếp theo là mật khẩu ít nhất 1 chữ cái

public function rules()
{
    return [
         'password' => [
             'required',
             Password::min(8)
               ->letters()
         ],
         'password_confirmation' => 'required|same:password'
    ];
}

 

Mật khẩu chứa ít nhất 1 chữ thường và 1 chữ hoa

Trong ví dụ này mật khẩu ít nhất 1 chữ thường và 1 chữ hoa

________số 8

 

Mật khẩu chứa ít nhất 1 số

Trong ví dụ này, mật khẩu có ít nhất 1 số

public function rules()
{
    return [
         'password' => [
             'required',
             Password::min(8)
               ->numbers()
         ],
         'password_confirmation' => 'required|same:password'
    ];
}

 

Mật khẩu chứa ít nhất 1 ký hiệu

Trong ví dụ này, mật khẩu có ít nhất 1 ký hiệu

// minimum 8 characters required
Password::min(8)
0

 

Ngoài ra, nếu bạn muốn đảm bảo rằng mật khẩu đã gửi không bị xâm phạm trên internet do rò rỉ vi phạm dữ liệu mật khẩu công khai, hãy sử dụng các dòng sau bên dưới

 

// minimum 8 characters required
Password::min(8)
1

 

Bạn cũng có thể thêm một giá trị nếu muốn đảm bảo rằng mật khẩu xuất hiện ít hơn 3 lần trong cùng một lần rò rỉ dữ liệu

 

// minimum 8 characters required
Password::min(8)
2

 

Đây là xác thực hoàn chỉnh với phương thức chuỗi để xác thực mật khẩu

 

// minimum 8 characters required
Password::min(8)
3

 

Tôi hy vọng nó sẽ hữu ích khi bạn đã biết cách triển khai mật khẩu mạnh của Laravel. Cảm ơn bạn đã đọc

Làm cách nào để đặt xác thực mật khẩu trong laravel?

Xác định quy tắc xác thực mật khẩu mặc định trong Laravel .
1sử dụng Chiếu sáng\Xác thực\Quy tắc\Mật khẩu;
4 * Bootstrap bất kỳ dịch vụ ứng dụng nào
6 * @return vô hiệu
khởi động chức năng 8public()

Làm cách nào để thay đổi mật khẩu trong Laravel 8?

sử dụng Ứng dụng\Http\Controllers\UserController; .
Tuyến đường. nhóm (['phần mềm trung gian' => 'auth'], chức năng ()
Tuyến đường. get('/change-password', [UserController. lớp, 'changePassword'])->name('changePassword');
Tuyến đường. post('/change-password', [UserController. lớp, 'changePasswordSave'])-> tên ('postChangePassword');

Trình xác thực mật khẩu là gì?

Trình xác thực mật khẩu chịu trách nhiệm xác định xem mật khẩu được đề xuất có được chấp nhận để sử dụng hay không và có thể bao gồm các bước kiểm tra như đảm bảo mật khẩu đáp ứng các yêu cầu về độ dài tối thiểu, rằng .

Làm cách nào để xác thực địa chỉ email trong laravel?

Tất cả những gì bạn cần làm là thay đổi phương thức xác thực như sau. lưu hàm công cộng(Yêu cầu $request) { $validated = $request->validate([ email=> 'email. rfc,dns' ]); . } Điều này cho phép chúng tôi áp dụng xác thực cả DNS và RFC cho địa chỉ email của mình.