Hôm nay chúng ta sẽ học cách cập nhật mật khẩu với kiểm tra mật khẩu cũ trong ứng dụng laravel 5. chúng ta sẽ tạo chức năng thay đổi mật khẩu bằng quy tắc xác thực mật khẩu cũ trong laravel. chúng tôi sẽ xác minh mật khẩu cũ bằng quy tắc xác thực tùy chỉnh trong laravel 6, laravel 7, laravel 8 và laravel 9
Trong hướng dẫn này, chúng tôi sẽ tạo ví dụ từ tinh bột. đầu tiên chúng tôi sẽ tạo auth sau đó chúng tôi tạo trang thay đổi mật khẩu. sau đó, chúng tôi sẽ tạo quy tắc xác thực tùy chỉnh để kiểm tra mật khẩu hiện tại trên cơ sở dữ liệu. sau đó chúng tôi sử dụng các quy tắc xác thực tùy chỉnh đó trên tệp bộ điều khiển của mình
Vì vậy, bạn chỉ cần làm theo vài bước để có hướng dẫn đầy đủ về xác thực mật khẩu cũ bằng cách sử dụng xác thực tùy chỉnh trong laravel. bạn có thể xem ảnh chụp màn hình đính kèm bên dưới để bố trí ví dụ của chúng tôi
Xem trước
Bước 1. Cài đặt Laravel 5. 8
trước hết chúng ta cần có Laravel 5 mới. 8 bằng cách sử dụng lệnh dưới đây, vì vậy hãy mở terminal OR dấu nhắc lệnh của bạn và chạy lệnh dưới đây
composer create-project --prefer-dist laravel/laravel blog
Bước 2. Tạo quy tắc xác thực tùy chỉnh
Sau khi bạn có thể thiết lập để di chuyển và xác thực cơ bản. tôi không viết ở đây để chạy di chuyển và xác thực cơ bản vì bạn biết cách làm điều đó. bây giờ chúng ta cần tạo các quy tắc xác thực mới bằng lệnh sau
php artisan make:rule MatchOldPassword
Sau này, chúng ta có thể thấy họ đã tạo thư mục "Quy tắc" mới với một tệp trên thư mục ứng dụng. bạn có thể cập nhật trên tập tin đó như thế này
ứng dụng/Quy tắc/MatchOldPassword. php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
use Illuminate\Support\Facades\Hash;
class MatchOldPassword implements Rule
{
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes[$attribute, $value]
{
return Hash::check[$value, auth[]->user[]->password];
}
/**
* Get the validation error message.
*
* @return string
*/
public function message[]
{
return 'The :attribute is match with old password.';
}
}
Bước 3. Tạo tuyến đường
Ở đây, chúng ta cần thêm hai route cho view và một route cho post route. vì vậy hãy mở "tuyến đường/web. php" và thêm tuyến đường sau
tuyến đường/web. php
Route::get['change-password', 'ChangePasswordController@index'];
Route::post['change-password', 'ChangePasswordController@store']->name['change.password'];
Bước 4. Tạo bộ điều khiển mới
Trong bước này, bây giờ chúng ta nên tạo bộ điều khiển mới là ChangePasswordController. Trong file này chúng ta sẽ tạo 2 phương thức index[] và store[]. chúng tôi cũng sẽ sử dụng xác thực tại đây. vì vậy chúng ta hãy làm
ứng dụng/Http/Bộ điều khiển/ChangePasswordController. php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Rules\MatchOldPassword;
use Illuminate\Support\Facades\Hash;
use App\User;
class ChangePasswordController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct[]
{
$this->middleware['auth'];
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index[]
{
return view['changePassword'];
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function store[Request $request]
{
$request->validate[[
'current_password' => ['required', new MatchOldPassword],
'new_password' => ['required'],
'new_confirm_password' => ['same:new_password'],
]];
User::find[auth[]->user[]->id]->update[['password'=> Hash::make[$request->new_password]]];
dd['Password change successfully.'];
}
}
Bước 5. Tạo tập tin lưỡi dao
Trong bước này, chúng ta cần tạo tệp phiến changePassword và chúng ta sẽ viết mã để tạo biểu mẫu và hiển thị thông báo lỗi. Vì vậy, hãy tạo tệp và đặt mã dưới đây
Tôi đã cài đặt laravel với Laravel Authentication và sẽ giải thích về việc thay đổi mật khẩu của người dùng đã đăng nhập
Bước 1 - Thay đổi trang mật khẩu
Tạo lộ trình đổi mật khẩu
Route::get['/change-password', [App\Http\Controllers\HomeController::class, 'changePassword']]->name['change-password'];
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Tạo hàm changePassword
trong HomeController
public function changePassword[]
{
return view['change-password'];
}
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Tạo change-password.blade.php
xem tệp trong resources/views
@extends['layouts.app']
@section['content']
{{ __['Chnage Password'] }}
@csrf
@if [session['status']]
{{ session['status'] }}
@elseif [session['error']]
{{ session['error'] }}
@endif
Old Password
@error['old_password']
{{ $message }}
@enderror
New Password
@error['new_password']
{{ $message }}
@enderror
Confirm New Password
Submit
@endsection
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Đầu ra sẽ giống như
Bước 2 - Xử lý Biểu mẫu Gửi
Tạo một tuyến đường POST trong tệp routes/web.php
________số 8_______
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Tạo hàm public function changePassword[]
{
return view['change-password'];
}
0 trong public function changePassword[]
{
return view['change-password'];
}
1
public function changePassword[]
{
return view['change-password'];
}
public function changePassword[]
{
return view['change-password'];
}
public function updatePassword[Request $request]
{
# Validation
$request->validate[[
'old_password' => 'required',
'new_password' => 'required|confirmed',
]];
#Match The Old Password
if[!Hash::check[$request->old_password, auth[]->user[]->password]]{
return back[]->with["error", "Old Password Doesn't match!"];
}
#Update the new Password
User::whereId[auth[]->user[]->id]->update[[
'password' => Hash::make[$request->new_password]
]];
return back[]->with["status", "Password changed successfully!"];
}
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
đầu ra cuối cùng sẽ giống như
Video hướng dẫn hoàn chỉnh ở bên dưới trong video
Nếu bạn gặp phải bất kỳ vấn đề nào trong khi triển khai, vui lòng nhận xét truy vấn của bạn
Cảm ơn bạn đã đọc
Liên lạc với tôi
Twitter
Instagram
Kênh YouTube TechToolẤn Độ