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

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

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

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')
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">{{ __('Chnage Password') }}div>

                    <form action="{{ route('update-password') }}" method="POST">
                        @csrf
                        <div class="card-body">
                            @if (session('status'))
                                <div class="alert alert-success" role="alert">
                                    {{ session('status') }}
                                div>
                            @elseif (session('error'))
                                <div class="alert alert-danger" role="alert">
                                    {{ session('error') }}
                                div>
                            @endif

                            <div class="mb-3">
                                <label for="oldPasswordInput" class="form-label">Old Passwordlabel>
                                <input name="old_password" type="password" class="form-control @error('old_password') is-invalid @enderror" id="oldPasswordInput"
                                    placeholder="Old Password">
                                @error('old_password')
                                    <span class="text-danger">{{ $message }}span>
                                @enderror
                            div>
                            <div class="mb-3">
                                <label for="newPasswordInput" class="form-label">New Passwordlabel>
                                <input name="new_password" type="password" class="form-control @error('new_password') is-invalid @enderror" id="newPasswordInput"
                                    placeholder="New Password">
                                @error('new_password')
                                    <span class="text-danger">{{ $message }}span>
                                @enderror
                            div>
                            <div class="mb-3">
                                <label for="confirmNewPasswordInput" class="form-label">Confirm New Passwordlabel>
                                <input name="new_password_confirmation" type="password" class="form-control" id="confirmNewPasswordInput"
                                    placeholder="Confirm New Password">
                            div>

                        div>

                        <div class="card-footer">
                            <button class="btn btn-success">Submitbutton>
                        div>

                    form>
                div>
            div>
        div>
    div>
@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ư

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

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 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ư

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

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 Độ

Làm cách nào để thay đổi mật khẩu người dùng trong Laravel?

Bước 1 - Trang Thay đổi mật khẩu. .
Tuyến đường. get('/change-password', [App\Http\Controllers\HomeController. class, 'changePassword'])->name('change-password');
chức năng công khai changePassword() { return view('change-password');

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

Bạn có thể sử dụng mã thông báo $ này để tạo URL đặt lại mật khẩu mà bạn chọn và gửi thông báo của mình cho người dùng. .
sử dụng Ứng dụng\Thông báo\ResetPasswordNotification;
* Gửi thông báo đặt lại mật khẩu cho người dùng
* @param chuỗi $token
* @return vô hiệu
chức năng công khai sendPasswordResetNotification($token)

Làm cách nào để đặt lại mật khẩu quản trị viên trong Laravel?

Cathy trò chuyện .
Đặt trình điều khiển thư là "nhật ký" (. tập tin env)
bấm vào quên mật khẩu
lấy liên kết đặt lại mật khẩu (nội dung thư) trong laravel. đăng nhập
dán nó vào trình duyệt và đặt lại mật khẩu

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

Băm mật khẩu bằng Bcrypt trong Laravel. $password = Hash. make('yourpassword'); Thao tác này sẽ tạo mật khẩu băm.