Làm cách nào để thay đổi mẫu đặt lại mật khẩu Laravel của tôi?

Tài liệu của Laravel đề cập rằng bạn có thể tùy chỉnh Mẫu còn lại mật khẩu, nhưng không giải thích cách bạn thực sự làm điều đó. Điều đó nói rằng, tôi sẽ cho rằng bạn đã có xác thực và đã xuất bản chế độ xem xác thực của mình. Điều đó được đề cập rất tốt trong tài liệu

Như đã nêu trong tài liệu, bạn sẽ cần ghi đè lên phương thức sendPasswordResetNotification trong mô hình Người dùng

public function sendPasswordResetNotification($token)
{
    $this->notify(new ResetPasswordNotification($token));
}

Bây giờ là phần thú vị, Laravel sử dụng Thông báo để gửi email Đặt lại mật khẩu. Vì vậy, chúng tôi sẽ phải tạo một thông báo mới có tên là ResetPasswordNotification

php artisan make:notification ResetPasswordNotification

Bên trong lớp ResetPasswordNotification của bạn và trong phương thức toMail, chúng ta cần hai thứ, một URL được đặt lại và chính Email đó

URL đặt lại được tạo bằng Mã thông báo và địa chỉ email của người dùng

Mã thông báo được tự động chuyển đến thông báo cho chúng tôi trong mô hình Người dùng nhưng để cung cấp mã thông báo cho phương thức toMail. Chúng ta sẽ phải thêm nó vào hàm tạo

    private $token;
    
    public function __construct($data)
    {
        $this->token = $data;
    }

Và đừng quên khai báo tài sản của bạn là riêng tư

Email của người dùng là một phần của tham số $notifiable, vì vậy chúng ta có thể gọi $notifiable->getEmailForPasswordReset()

$url = url(config('app.url') . route('password.reset', [
        'token' => $this->token,
        'email' => $notifiable->getEmailForPasswordReset(),
    ], false));

Tiếp theo, chúng ta phải tự xây dựng Email, tạo một

php artisan make:notification ResetPasswordNotification
0 mới

return (new MailMessage)->view('emails.user.reset', ['url' => $url]);

Tùy thuộc vào mẫu email của bạn, cá nhân tôi đã chọn sử dụng Blade và HTML thông thường, Chỉ cần hiển thị URL trong mẫu của bạn

php artisan make:notification ResetPasswordNotification
1

Phương thức toMail đã hoàn thành bây giờ trông như thế này

public function toMail($notifiable)
{
    $url = url(config('app.url') . route('password.reset', [
            'token' => $this->token,
            'email' => $notifiable->getEmailForPasswordReset(),
        ], false));

    return (new MailMessage)->view('emails.user.reset', ['url' => $url]);
}

Tôi chắc rằng bạn có thể thấy rằng đây thực sự là một bước đơn giản để đảm bảo tính nhất quán cho ứng dụng của bạn và tôi hy vọng điều này sẽ giúp ích cho bạn. Tôi biết khi tôi đang cố gắng tìm hiểu điều này, tôi đã không quen thuộc 100% với MailMessage hoặc Thông báo

Nếu bạn đang sử dụng xác thực mặc định của Laravel để quản lý người dùng của mình, nhưng muốn thay đổi URI và văn bản trong email Đặt lại mật khẩu mặc định. Chà, có một lối thoát mà chúng ta có thể đạt được điều đó trong Laravel

Bố cục & Văn bản Mặc định

Làm cách nào để thay đổi mẫu đặt lại mật khẩu Laravel của tôi?

Tạo Thông báo mới

Hãy bắt đầu bằng cách tạo Thông báo mới cho người gửi email tùy chỉnh mới của chúng ta với laravel artisan CLI

php artisan make:notification MailResetPasswordNotification

Bây giờ bạn có thể tìm thấy tệp này dưới tên app\Notifications. Ngay trong phương thức toMail, chúng ta có thể thực hiện các sửa đổi của mình

________số 8_______

Ở đây, chúng tôi đã sửa đổi URI hành động, thêm chế độ xem sẽ được tải cho email của chúng tôi, thêm một vài dòng và tệp đính kèm để email Đặt lại của chúng tôi trông bắt mắt hơn

Ghi đè phương thức sendPasswordResetNotification

Theo mặc định, mô hình Người dùng sử dụng đặc điểm canResetPassword để đặt lại mật khẩu, bạn có thể tìm thấy tệp này bên dưới

/** * Send the password reset notification. * * @param string $token * @return void */public function sendPasswordResetNotification($token){ $this->notify(new App\Notifications\MailResetPasswordNotification($token));}
0

Bây giờ là lúc yêu cầu

/** * Send the password reset notification. * * @param string $token * @return void */public function sendPasswordResetNotification($token){ $this->notify(new App\Notifications\MailResetPasswordNotification($token));}
1 của chúng tôi sử dụng thông báo tùy chỉnh của chúng tôi thay vì thông báo mặc định. Hãy ghi đè lên sendPasswordResetNotification

Làm cách nào để tùy chỉnh email đặt lại mật khẩu trong laravel?

Nhưng trong hướng dẫn này, bạn sẽ tìm hiểu cách tạo xác minh email tùy chỉnh và đặt lại mật khẩu trong Laravel. .
Chọn loại mã hóa "dữ liệu biểu mẫu"
Thêm một biến yêu cầu, email và đặt biến này thành địa chỉ email của bạn
Thêm biến yêu cầu thứ hai, mật khẩu và đặt biến này thành mật khẩu của bạn

Làm cách nào để thay đổi mật khẩu 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ùy chỉnh mẫu xác minh email trong laravel?

Ví dụ về hệ thống xác minh email tùy chỉnh của Laravel .
Bước 1. Cài đặt Laravel. .
Bước 2. Tạo bảng "users_verify". .
Bước 3. Tạo mô hình và cập nhật mô hình. .
Bước 4. Tạo tuyến đường. .
Bước 5. Tạo bộ điều khiển. .
Bước 6. Tạo tập tin lưỡi dao. .
Bước 7. Tạo phần mềm trung gian. .
Bước 8. Cấu hình email

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

Bước 1. Tạo bảng mã đặt lại mới . 2- mở di chuyển reset_code_passwords_table và sẽ giống như thế này. Lược đồ. tạo('reset_code_passwords', function (Bản thiết kế $table) { $table->string('email')->index(); $table->string('code'); $table->timestamp('created_at')