Thêm password confirmation trên một số route trong Laravel Chuyên mục PHP và Laravel 2023-07-28 1.4k Lượt xem 103 Lượt thích 0 Bình luận

Nếu bạn đã sử dụng một số ứng dụng web tuyệt vời, chẳng hạn như GitHub, bạn có thể nhận thấy rằng khi lưu thông tin nhạy cảm như cài đặt hoặc chi tiết thanh toán, nó sẽ yêu cầu xác nhận mật khẩu trước khi thực hiện hành động. Điều này bổ sung thêm lớp bảo mật và chắc chắn là một tính năng rất hay.
Trong Laravel, chính tính năng này đã được tích hợp sẵn. Bạn có thể thêm xác nhận mật khẩu trên bất kỳ route nào bằng cách đính kèm middleware trung gian password.confirm vào nó và nó sẽ đảm nhiệm những việc còn lại. tức là điều hướng người dùng xác nhận lại mật khẩu của họ. Bạn có thể tìm middleware ở đây: src/Illuminate/Auth/Middleware/RequirePassword.php
Dưới đây là cách bạn có thể sử dụng middleware.
Route::get('/payment-details', 'PaymentsController@save')->middleware('password.confirm');
Bây giờ, nếu bạn cố gắng truy cập route , bạn sẽ được nhắc xác nhận mật khẩu của mình.
Middleware cũng quan tâm đến việc người dùng không phải xác nhận lại mật khẩu của họ trong một khoảng thời gian nhất định bằng cách storing một timestamp trong session của người dùng kéo dài trong ba giờ theo mặc định khi họ xác nhận lại lần đầu tiên. Bạn cũng có thể tùy chỉnh thời lượng này bằng tùy chọn cấu hình password_timeout mới trong file cấu hình auth.php như bên dưới.
return [
//... code commented for brevity
/*
|--------------------------------------------------------------------------
| Password Confirmation Timeout
|--------------------------------------------------------------------------
|
| Here you may specify the amount of seconds before a password confirmation
| is timed out and the user's prompted to give their password again on the
| confirmation screen. By default the timeout lasts for three hours.
|
*/
'password_timeout' => 10800,
];
Tất cả điều này có thể tiếp tục hoạt động vì Laravel đã thêm mới password validation rule có thể được sử dụng để xác thực mật khẩu đã cho bằng mật khẩu thực của người dùng. Bạn cũng có thể pass một guard name như một tham số.
Bình luận (0)