Giới thiệu
Các yêu cầu biểu mẫu Laravel là các lớp đặc biệt mở rộng chức năng của các lớp yêu cầu thông thường, cho phép các tính năng xác thực nâng cao. Yêu cầu biểu mẫu cũng giúp giữ cho các hành động của bộ điều khiển của bạn gọn gàng hơn rất nhiều, bởi vì bạn có thể di chuyển tất cả logic xác thực của mình sang lớp yêu cầu biểu mẫu. Một lợi ích khác là nó cho phép bạn lọc các yêu cầu trước khi chúng đến các hành động của bộ điều khiển của bạn
Bạn nên đặt trường xác nhận mật khẩu trong biểu mẫu của mình vì mật khẩu là trường ẩn và người dùng sẽ không bao giờ biết nếu họ mắc lỗi đánh máy khi điền mật khẩu
Khi xác thực phụ trợ, bạn chỉ cần sử dụng quy tắc xác thực đã xác nhận cho trường mật khẩu của mình
$request->validate[[
'password' => 'required|confirmed|min:6'
]];
Ngoài ra trong HTML của bạn, bạn cần đảm bảo rằng trường mật khẩu được sử dụng để nhập xác nhận từ người dùng phải được đặt tên là password_confirmation
Thanh toán công cụ này. Mở công cụ kiểm tra cổng
Mã Bootstrap FrontEnd cho Mật khẩu Laravel và Xác nhận Xác thực Mật khẩu
Đây là mã biểu mẫu bootstrap bao gồm cả hai trường và cũng hiển thị lỗi khi xác thực không thành công
Password
@error['password']
{{ $message }}
@enderror
Confirm Password
Cảm ơn bạn đã đọc blog này
đọc thêm. Có gì mới trong Laravel 9. Các tính năng mới của Laravel 9
Nếu bạn muốn quản lý Máy chủ VPS / VM của mình mà không cần chạm vào dòng lệnh, hãy xem liên kết này. ServerAvatar cho phép bạn thiết lập nhanh các trang web WordPress hoặc PHP tùy chỉnh trên VPS / VM chỉ trong vài phút. Bạn có thể lưu trữ nhiều trang web trên một VPS / VM, định cấu hình chứng chỉ SSL và theo dõi tình trạng của máy chủ mà không cần chạm vào giao diện dòng lệnh
Trong một số trường hợp, bạn cần so sánh một chuỗi do người dùng cung cấp với một số mật khẩu được lưu trữ và mã hóa trong cơ sở dữ liệu, trường hợp điển hình là xác thực người dùng từ API
lấy chuỗiĐể lấy chuỗi từ yêu cầu, tôi sẽ sử dụng “$request”, yêu cầu này có thể được đặt dưới dạng tham số với lớp “Illuminate\Http\Request”, đây là một đối tượng và nó có các thuộc tính, bạn chỉ cần sử dụng
$request->password;
$request->email;
Nhận mô hình người dùng bằng DB
Tôi tạo một phương thức gọi là “xác thực” nhưng nó có thể là bất kỳ tên nào khác, nó nhận hai tham số email và mật khẩu với đối tượng “request”, vì vậy bạn cần lấy mô hình người dùng từ DB, tôi thích sử dụng eloquent hơn để lấy
Và nếu người dùng khác với null, nó sẽ trả về một phương thức so sánh Mật khẩu
public function validates[string $email, string $password]{$user = User::where[['email' => $email]]->first[];if [! is_null[$user]] { return $this->comparePasswords[$password, $user];}
So sánh chuỗi với giá trị mật khẩu DB
Phương thức “so sánhPasswords” lấy mật khẩu dưới dạng chuỗi và mô hình người dùng tìm nạp từ DB, vì vậy tôi chỉ cần so sánh chuỗi “mật khẩu” với thuộc tính “mật khẩu” của mô hình “Người dùng”, để so sánh chúng tôi sử dụng “getAuthPassword
public function comparePasswords[String $password, User $user]{ if [Hash::check[$password, $user->getAuthPassword[]]] { return response[]->json[[ 'authenticated' => true, 'data' => [ 'id' => $user->id, ] ]]; }}
“getAuthPassword” trả về mật khẩu từ mô hình “Người dùng” được băm, nhưng Tại sao không lấy thuộc tính như. “$user->password[]”, theo mặc định mô hình “User” có giá trị mật khẩu là ẩn
/*** The attributes that should be hidden for arrays.** @var array*/protected $hidden = ['password', 'remember_token',];
Vì vậy, để giữ giá trị mật khẩu ở dạng ẩn và chỉ cần lấy mật khẩu lần này, “getAuthPassword” là một cách hay để giải quyết vấn đề
Trong bài viết này, chúng tôi sẽ chia sẻ với bạn cách kiểm tra chuỗi mật khẩu hiện tại của bạn với sự trợ giúp của hàm băm tạo mật khẩu của laravel. chức năng kiểm tra []. chúng tôi biết mật khẩu lưu trữ laravel ở định dạng băm nên mật khẩu không được nhìn thấy ở định dạng có thể đọc được. vậy, làm cách nào để kiểm tra bất kỳ chuỗi nào với chuỗi mật khẩu của laravel đã chuyển đổi hàm băm đó?
Nhiều khi bạn cần so sánh bất kỳ chuỗi mật khẩu nào với chuỗi băm mật khẩu cũ của laravel. điều này là cần thiết khi chúng tôi xây dựng chức năng thay đổi mật khẩu trong một ứng dụng. trước khi thay đổi mật khẩu, chúng tôi muốn kiểm tra xem người dùng nhập chuỗi vào hộp nhập có khớp với chuỗi mật khẩu cũ của mình không?
Bạn có thể thực hiện nó với sự trợ giúp của hàm Hash::check[]
trong ứng dụng laravel của mình
Thí dụ
public function changePassword[Request $request]
{
$input = $request->all[];
$user = User::find[auth[]->user[]->id];
// Check password string with hash string..
if[!Hash::check[$input['current_password'], $user->password]] {
dd['Return error with current passowrd is not match.'];
}else{
dd['Write here your update password code'];
}
}
Như bạn có thể thấy, cách kiểm tra chuỗi mật khẩu hiện tại của bạn bằng mật khẩu băm cũ của laravel trong trợ giúp ứng dụng laravel của hàm Hash::check[]
Chúng tôi hy vọng rằng hướng dẫn nhỏ giúp mọi người. nếu bạn biết thêm cách kiểm tra mật khẩu hiện tại bằng mật khẩu cũ trong laravel hoặc bất kỳ vấn đề, câu hỏi nào liên quan đến các hướng dẫn này, vui lòng bình luận bên dưới