Làm cách nào để so sánh mật khẩu trong Laravel 8?

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

Làm cách nào để so sánh mật khẩu được mã hóa trong laravel?

Trong Laravel, bạn có thể sử dụng mô-đun Hash facade để làm việc với mật khẩu . Nó có bcrypt để giúp bạn lưu trữ mật khẩu của mình một cách an toàn. Phương thức bcrypt[] của Hash facade là một cách hiệu quả để băm mật khẩu.

Làm cách nào để kiểm tra mật khẩu băm trong Laravel 8?

Trước tiên, bạn cần tìm Người dùng đang đăng nhập dựa trên địa chỉ email hoặc tên người dùng hoặc theo cách bạn xác định họ, chẳng hạn. $user = Người dùng. trong đó ['email', '=', 'email @ địa chỉ. com']->đầu tiên[]; . Băm. check['NHẬP MẬT KHẨU', $user->password];

Làm cách nào để giải mã mật khẩu băm trong Laravel 8?

$decrypt= Mật mã. giải mã[$data->password];

Làm cách nào để băm mật khẩu trong laravel?

Băm mật khẩu bằng Bcrypt .
$password = Băm. make['bí mật'];
$password = bcrypt['bí mật'];
nếu [Băm. check['secret', $hashedPassword]] { // Mật khẩu trùng khớp. }
nếu [Băm. NeedRehash[$hashed]] { $hashed = Hash. make['bí mật'];

Chủ Đề