Mẫu email đặt lại mật khẩu Laravel

vậy là xong, bây giờ hãy tiếp tục và tạo mẫu email đặt lại mật khẩu của bạn trong Laravel 5. 6 thư mục xem dự án.  

php artisan make:notification ResetPasswordNotification
25

nếu bạn có bất kỳ câu hỏi nào liên quan đến "Ghi đè Laravel 5. 6 Mẫu email đặt lại mật khẩu mặc định", vui lòng để lại nhận xét của bạn dưới đây

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 đè phương thức

php artisan make:notification ResetPasswordNotification
26 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à

php artisan make:notification ResetPasswordNotification
27

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ố

php artisan make:notification ResetPasswordNotification
28, vì vậy chúng ta có thể gọi
php artisan make:notification ResetPasswordNotification
29

$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

Sử dụng tệp lưỡi cắt mẫu email tùy chỉnh cho email đặt lại mật khẩu Laravel của bạn chỉ với 6 dòng mã

Mở

php artisan make:notification ResetPasswordNotification
30 trong chức năng
php artisan make:notification ResetPasswordNotification
31 dán và chỉnh sửa như sau

________số 8

Điều này sẽ ghi đè thông báo email đặt lại mật khẩu để sau đó tạo email của riêng bạn theo các tham số

Tôi sẽ sử dụng mẫu email tùy chỉnh được lưu trong

php artisan make:notification ResetPasswordNotification
32 và phần quan trọng nhất là chuyển URL đặt lại, đây là mã thông báo được tạo để đặt lại mật khẩu một cách an toàn

php artisan make:notification ResetPasswordNotification
33 là lộ trình đặt lại mật khẩu có gắn mã thông báo đặt lại

php artisan make:notification ResetPasswordNotification
34 là email tài khoản được đính kèm với URL dưới dạng tham số. Phần này là tùy chọn, tuy nhiên nếu có thì trường nhập email sẽ tự động được điền

Xác minh email và đặt lại mật khẩu là hai tính năng xác thực không thể thiếu của các ứng dụng hiện đại. Trong hầu hết các ứng dụng web, người dùng thường đặt lại mật khẩu bị mất, tuy nhiên, họ cũng phải xác minh địa chỉ email của mình trước khi truy cập ứng dụng web lần đầu tiên

Laravel cung cấp các dịch vụ tích hợp, tiện dụng để gửi và xác minh các yêu cầu xác minh email và đặt lại mật khẩu một cách an toàn. Nhưng trong hướng dẫn này, bạn sẽ học cách tạo xác minh email tùy chỉnh và đặt lại mật khẩu trong Laravel

điều kiện tiên quyết

  • Trình soạn nhạc được cài đặt trên toàn cầu
  • Laravel 8 đã được cài đặt
  • Một tài khoản Gmail
  • Một cơ sở dữ liệu được hỗ trợ bởi Laravel
  • PHP7. 4
  • Người phát thơ

Xác minh email và đặt lại mật khẩu trong nháy mắt

Cần có tùy chọn đặt lại mật khẩu bất cứ khi nào bạn thêm chức năng đăng nhập và đăng ký để xác thực người dùng. Làm như vậy, bất cứ khi nào người dùng quên mật khẩu, họ có phương tiện để đặt lại mật khẩu. Là một phần của quy trình này, thường sẽ có một mã thông báo trong liên kết đặt lại và mã thông báo đó phải được xác thực. Bạn có thể xem một ví dụ đơn giản dưới đây

http://www.example.org/reset_password?token=169d07470f8570afdfba09f5d9452db3d74

Laravel cung cấp một số triển khai xác thực khác nhau để tạo chúng, chẳng hạn như UI auth, Breeze Auth và Jetstream, bao gồm chức năng đăng nhập, đăng ký, xác minh email và đặt lại mật khẩu

Tuy nhiên, nếu bạn định tạo một ứng dụng không có các gói xác thực này thì bạn phải triển khai chức năng đặt lại mật khẩu và xác minh email theo cách thủ công

Lợi ích xác minh email tùy chỉnh và đặt lại mật khẩu

Có thể cần tùy chỉnh quy trình đặt lại mật khẩu và xác minh email khi xây dựng API vì đặt lại mật khẩu mặc định và xác minh email từ giàn giáo xác thực mặc định của Laravel chủ yếu nhắm mục tiêu vào các ứng dụng web

Trong hướng dẫn này, bạn sẽ học cách làm điều này. Bạn sẽ không gửi mã thông báo được nhúng trong các liên kết, thay vào đó, bạn sẽ gửi các ghim 6 chữ số. Chúng phù hợp cho cả ứng dụng web và API — giả sử bạn đang xây dựng chúng cho các nhà phát triển di động sử dụng

Tạo ứng dụng Laravel

Bạn có thể tạo một ứng dụng Laravel mới thông qua Trình soạn thảo hoặc cài đặt Trình cài đặt Laravel dưới dạng phụ thuộc Trình soạn thảo toàn cầu. Chúng ta sẽ sử dụng Laravel Installer trong hướng dẫn này. Để tạo ứng dụng bằng nó, hãy chạy lệnh sau trong terminal

php artisan make:notification ResetPasswordNotification
0

Điều này sẽ tạo một ứng dụng Laravel trong một thư mục mới có tên custom_authentication. Tiếp theo, thay đổi thư mục ứng dụng mới bằng cách chạy lệnh sau

php artisan make:notification ResetPasswordNotification
1

Bây giờ, khởi động ứng dụng bằng cách chạy lệnh sau

php artisan make:notification ResetPasswordNotification
2

Theo mặc định, dự án được phục vụ trên cổng 8000 trên máy chủ cục bộ, vì vậy bây giờ bạn có thể truy cập ứng dụng bằng cách nhập http. //máy chủ cục bộ. 8000 trong trình duyệt của bạn. Khi thực hiện, bạn sẽ thấy một trang tương tự như hình bên dưới xác nhận rằng dự án của bạn đang chạy

Mẫu email đặt lại mật khẩu Laravel

Khi ứng dụng đang hoạt động, hãy dừng nó bằng cách nhấn Ctrl + C

Thiết lập các biến môi trường

Để cấu hình cơ sở dữ liệu của ứng dụng, trong. env, hãy cập nhật cài đặt cấu hình cơ sở dữ liệu mà bạn có thể thấy trong ví dụ bên dưới để khớp với chi tiết cho cơ sở dữ liệu của bạn

php artisan make:notification ResetPasswordNotification
3

Vì bạn sẽ sử dụng Máy chủ SMTP của Gmail để gửi mã PIN gồm 6 chữ số cho người dùng qua email, tiếp theo, bạn cần cập nhật các biến môi trường thư để khớp với các giá trị bên dưới. Thay thế hai trình giữ chỗ bằng tên người dùng và mật khẩu Gmail của bạn tương ứng

php artisan make:notification ResetPasswordNotification
4

Cẩn thận không sử dụng dấu ngoặc kép(“,',) hoặc dấu cách. Ngoài ra, bạn có thể cần xóa bộ đệm của Laravel, mặc dù điều đó không bắt buộc. Để làm điều đó, hãy chạy lệnh sau trong terminal

php artisan make:notification ResetPasswordNotification
5

Bạn có thể tìm thêm thông tin về cách gửi thư bằng Gmail SMTP trong bài viết này

Để sử dụng GMAIL làm máy chủ SMTP, bạn cần bật Quyền truy cập ứng dụng kém an toàn hơn

Thiết lập mô hình và di chuyển

Laravel đi kèm với một tệp Mô hình mặc định có tên là Người dùng. php, nằm trong thư mục app/Models và tệp Di chuyển có tên 2014_10_12_000000_create_users_table. php trong thư mục cơ sở dữ liệu/di chuyển

Cập nhật người dùng. php bằng cách sửa đổi mảng

php artisan make:notification ResetPasswordNotification
40, cho biết các trường có thể điền, để khớp với ví dụ mã bên dưới

php artisan make:notification ResetPasswordNotification
7

Sau đó, cập nhật phương thức

php artisan make:notification ResetPasswordNotification
41 của tệp di chuyển để khớp với ví dụ bên dưới

php artisan make:notification ResetPasswordNotification
9

Thiết lập xác thực

Bạn sẽ sử dụng Laravel Sanctum trong hướng dẫn này, đây là hệ thống xác thực hạng nhẹ dành cho SPA (Ứng dụng một trang), ứng dụng di động và API dựa trên mã thông báo, để hạn chế quyền truy cập vào một số tuyến đường

Cài đặt nó bằng Trình soạn thảo, bằng cách chạy lệnh bên dưới

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

Tiếp theo, sử dụng lệnh

php artisan make:notification ResetPasswordNotification
42 Artisan bên dưới, để xuất bản các tệp cấu hình và di chuyển Sanctum mới vào thư mục
php artisan make:notification ResetPasswordNotification
43 của ứng dụng của bạn

php artisan make:notification ResetPasswordNotification
00

Sau đó, trong ứng dụng/Http/Kernel. php, hãy thêm phần mềm trung gian của Sanctum vào nhóm phần mềm trung gian

php artisan make:notification ResetPasswordNotification
44 của bạn, bằng cách bỏ ghi chú dòng được đánh dấu trong ví dụ bên dưới

php artisan make:notification ResetPasswordNotification
01

Chạy di chuyển cơ sở dữ liệu

Với những thay đổi đã thực hiện, tiếp theo, hãy chạy lệnh sau để thực hiện di chuyển cơ sở dữ liệu và cung cấp cơ sở dữ liệu

php artisan make:notification ResetPasswordNotification
02

Thêm hỗ trợ xác minh email

Sau khi đăng ký thành công, người dùng được nhắc kiểm tra email của họ (được gửi qua Mailable) để lấy mã PIN gồm 6 chữ số. Nếu mã PIN trùng khớp thì email của họ được xác minh thành công và họ được chuyển hướng đến trang chủ

Để tạo theMailable, app/Mail/VerifyEmail. php và mẫu xem tương ứng của nó, tài nguyên/lượt xem/email/xác minh. lưỡi. php, hãy chạy lệnh Artisan sau

php artisan make:notification ResetPasswordNotification
03

Sau đó, mở ứng dụng/Mail/VerifyEmail. php và cập nhật phương thức

php artisan make:notification ResetPasswordNotification
45 để khớp với mã bên dưới

php artisan make:notification ResetPasswordNotification
04

Sau đó, thêm biến thành viên bên dưới vào đầu lớp

php artisan make:notification ResetPasswordNotification
05

php artisan make:notification ResetPasswordNotification
46 được đặt làm biến thành viên chung để nó có thể được chuyển từ
php artisan make:notification ResetPasswordNotification
47 (sẽ sớm được tạo) sang hàm tạo của
php artisan make:notification ResetPasswordNotification
48

Tiếp theo, cập nhật hàm

php artisan make:notification ResetPasswordNotification
49 của lớp để khớp với mã bên dưới

php artisan make:notification ResetPasswordNotification
06

Và sau đó, cập nhật mẫu chế độ xem email, tài nguyên/lượt xem/email/xác minh. lưỡi. php, để khớp với mã bên dưới

php artisan make:notification ResetPasswordNotification
07

Thiết lập bộ điều khiển đăng ký

Tiếp theo, bạn cần tạo bộ điều khiển để đăng ký người dùng và gửi cho họ email có mã PIN gồm 6 chữ số để họ có thể xác minh địa chỉ email của mình. Để tạo bộ điều khiển, hãy chạy lệnh sau

php artisan make:notification ResetPasswordNotification
08

Điều này sẽ tạo một tệp mới, RegisterController. php, trong thư mục app\Http\Controllers. Tiếp theo, thêm các câu lệnh

php artisan make:notification ResetPasswordNotification
50 sau vào đầu tệp

php artisan make:notification ResetPasswordNotification
09

Sau đó, xác định phương thức

php artisan make:notification ResetPasswordNotification
51 bằng cách thêm mã bên dưới vào lớp

php artisan make:notification ResetPasswordNotification
10

Mã bắt đầu bằng cách xác thực tất cả các trường đăng ký bắt buộc trước khi đăng ký người dùng. Các quy tắc xác nhận bao gồm

  • Một địa chỉ email hợp lệ là duy nhất
  • Mật khẩu có ít nhất 8 ký tự
  • Trường
    php artisan make:notification ResetPasswordNotification
    52 để nhập lại mật khẩu của bạn

Nếu đăng ký thành công, một email sẽ được gửi với mã PIN gồm 6 chữ số đến địa chỉ email đã đăng ký để xác minh email và mã thông báo sẽ được trả lại trong phản hồi. Mã thông báo này được sử dụng để thực hiện bất kỳ yêu cầu được ủy quyền nào trong tương lai

Tiếp theo, xác định phương thức

php artisan make:notification ResetPasswordNotification
53 của bộ điều khiển bằng cách dán mã bên dưới vào sau phương thức
php artisan make:notification ResetPasswordNotification
54

php artisan make:notification ResetPasswordNotification
11

Phương pháp này xác minh rằng mã PIN gồm 6 chữ số, được truy xuất từ ​​yêu cầu, được liên kết với yêu cầu đặt lại địa chỉ email cho người dùng hiện tại. Nếu đúng như vậy thì yêu cầu đặt lại mật khẩu sẽ bị xóa và email của người dùng được đánh dấu là đã được xác minh. Sau đó, một phản hồi thành công được trả về

Nếu mã thông báo không được cung cấp hoặc mã thông báo không được liên kết với yêu cầu mật khẩu cho người dùng, thì người dùng sẽ được chuyển hướng trở lại

php artisan make:notification ResetPasswordNotification
47 với thông báo lỗi áp dụng

Thêm chức năng gửi lại pin

Nếu mã PIN đặt lại mật khẩu gồm 6 chữ số hết hạn, người dùng có thể muốn yêu cầu mã PIN khác. Để làm điều đó, hãy xác định phương thức

php artisan make:notification ResetPasswordNotification
56 bằng cách thêm đoạn mã sau vào
php artisan make:notification ResetPasswordNotification
57 sau phương thức
php artisan make:notification ResetPasswordNotification
53

php artisan make:notification ResetPasswordNotification
12

Mã bắt đầu bằng cách kiểm tra xem địa chỉ email đã gửi có hợp lệ không. Nếu có và nó đã được liên kết với yêu cầu đặt lại mật khẩu thì yêu cầu đặt lại mật khẩu phù hợp sẽ bị xóa

Sau đó, một mã thông báo mới được tạo và cùng với địa chỉ email, được sử dụng để tạo yêu cầu đặt lại mật khẩu mới. Nếu yêu cầu được tạo thành công, thì mã thông báo sẽ được gửi qua email cho người dùng. Ngoài ra, phản hồi JSON thông báo cho người dùng rằng họ sẽ nhận được email có mã thông báo đặt lại

Thiết lập phần mềm trung gian

Điều tiếp theo cần làm là tạo một lớp phần mềm trung gian mới sẽ ngăn người dùng truy cập các tuyến khác cho đến khi địa chỉ email của họ được xác minh. Để tạo nó, hãy chạy lệnh sau

php artisan make:notification ResetPasswordNotification
13

Lệnh sẽ tạo một tệp mới, VerifyEmail. php, trong ứng dụng/Http/Middleware/. Với tệp đã tạo, hãy thêm các câu lệnh

php artisan make:notification ResetPasswordNotification
50 sau vào đầu tệp

php artisan make:notification ResetPasswordNotification
14

Sau đó, cập nhật phương thức

php artisan make:notification ResetPasswordNotification
70 để khớp với đoạn mã sau

php artisan make:notification ResetPasswordNotification
15

Tiếp theo, bạn cần liên kết nó với phần mềm trung gian định tuyến của ứng dụng, bằng cách thêm dòng được đánh dấu bên dưới vào mảng

php artisan make:notification ResetPasswordNotification
71 trong app\Http\Kernel. php

php artisan make:notification ResetPasswordNotification
16

Thiết lập bộ điều khiển đăng nhập

Tiếp theo, bạn cần tạo bộ điều khiển có chức năng đăng nhập và đăng xuất bằng cách chạy lệnh sau

php artisan make:notification ResetPasswordNotification
17

Thao tác này sẽ tạo một tệp có tên

php artisan make:notification ResetPasswordNotification
72 trong thư mục app\Http\Controllers. Sau khi nó được tạo, hãy thêm các câu lệnh
php artisan make:notification ResetPasswordNotification
50 sau vào đầu tệp

php artisan make:notification ResetPasswordNotification
18

Sau đó, xác định các phương thức

php artisan make:notification ResetPasswordNotification
74 và
php artisan make:notification ResetPasswordNotification
75 bằng cách sao chép đoạn mã sau vào phần thân của lớp

php artisan make:notification ResetPasswordNotification
19

Phương thức

php artisan make:notification ResetPasswordNotification
74 yêu cầu địa chỉ email và mật khẩu. Địa chỉ email phải hợp lệ và được liên kết với mật khẩu trước khi người dùng đăng nhập thành công. Sau khi đăng nhập thành công, một mã thông báo mới được gán cho người dùng để thực hiện các yêu cầu trái phép

Phương pháp

php artisan make:notification ResetPasswordNotification
75 xóa mã thông báo của người dùng để họ không có quyền truy cập được ủy quyền cho đến khi họ đăng nhập lại để nhận mã thông báo mới

Thêm hỗ trợ đặt lại mật khẩu

Trước khi cho phép người dùng thay đổi mật khẩu của họ — đặc biệt là khi họ chưa đăng nhập — phải cung cấp một phương tiện để đảm bảo rằng người dùng hợp lệ và sở hữu tài khoản

Một cách hay để thực hiện việc này là gửi mã PIN xác nhận đến địa chỉ email đã đăng ký bằng Mailable. Nếu người dùng gửi mã PIN chính xác thì họ được phép đặt lại mật khẩu của mình

Tạo một mật khẩu đặt lại Mailable

Tạo theMailable, trong ứng dụng/Mail/ResetPassword. php và mẫu xem tương ứng của nó, trong tài nguyên/lượt xem/email/mật khẩu. lưỡi. php, bằng cách chạy lệnh sau

php artisan make:notification ResetPasswordNotification
20

Với các tệp đã tạo, hãy mở ứng dụng/Mail/ResetPassword. php và cập nhật phương thức

php artisan make:notification ResetPasswordNotification
45 như sau

php artisan make:notification ResetPasswordNotification
04

Sau đó, xác định biến thành viên lớp

php artisan make:notification ResetPasswordNotification
46 ở đầu lớp

php artisan make:notification ResetPasswordNotification
05

Tiếp theo, cập nhật phương thức `build()` như sau

php artisan make:notification ResetPasswordNotification
23

Sau đó, cập nhật mẫu chế độ xem email trong tài nguyên/lượt xem/email/mật khẩu. lưỡi. php như sau

php artisan make:notification ResetPasswordNotification
24

Thiết lập bộ điều khiển quên mật khẩu

Tiếp theo, bạn cần tạo bộ điều khiển để giúp người dùng đặt lại mật khẩu của họ, gửi email cho họ mã PIN đặt lại mật khẩu. Để làm như vậy, hãy chạy lệnh sau

php artisan make:notification ResetPasswordNotification
25

Nó sẽ tạo một tệp mới có tên là ForgotPasswordController. php trong thư mục app\Http\Controllers. Khi nó được tạo, hãy thêm các câu lệnh

php artisan make:notification ResetPasswordNotification
50 cần thiết vào đầu tệp

php artisan make:notification ResetPasswordNotification
26

Tiếp theo, xác định phương thức

php artisan make:notification ResetPasswordNotification
91, bằng cách dán mã bên dưới vào lớp

php artisan make:notification ResetPasswordNotification
27

Phương thức

php artisan make:notification ResetPasswordNotification
91 xác thực địa chỉ email được gửi trong yêu cầu và kiểm tra xem nó có được liên kết với người dùng hiện tại hay không và liệu nó có được liên kết với yêu cầu đặt lại mật khẩu không. Nếu đúng như vậy, thì yêu cầu đặt lại mật khẩu hiện tại sẽ được thay thế bằng một yêu cầu khác. Sau đó, nó kết thúc bằng cách gửi email đặt lại mật khẩu cho người dùng, email này có chứa mã pin đặt lại mật khẩu

Tiếp theo, thêm phương thức

php artisan make:notification ResetPasswordNotification
93, bên dưới, sau phương thức
php artisan make:notification ResetPasswordNotification
94

php artisan make:notification ResetPasswordNotification
28

Phương pháp này yêu cầu địa chỉ email của người dùng và mã PIN gồm 6 chữ số được gửi cho họ, sau khi người dùng yêu cầu đặt lại mật khẩu của họ. Nếu mã pin chưa hết hạn và được liên kết với yêu cầu đặt lại mật khẩu bằng địa chỉ email của người dùng, thì người dùng được phép đặt lại mật khẩu của họ. Nếu không, một thông báo lỗi áp dụng được trả lại

Thiết lập bộ điều khiển đặt lại mật khẩu

Tiếp theo, bạn cần tạo bộ điều khiển để đặt lại mật khẩu của người dùng. Để tạo bộ điều khiển, hãy chạy lệnh sau

php artisan make:notification ResetPasswordNotification
29

Nó sẽ tạo một tệp mới có tên ResetPasswordController. php trong thư mục app\Http\Controllers. Khi nó được tạo, hãy thêm các câu lệnh

php artisan make:notification ResetPasswordNotification
50 sau vào đầu tệp

php artisan make:notification ResetPasswordNotification
18

Sau đó, triển khai phương thức

php artisan make:notification ResetPasswordNotification
96 cho phép người dùng đặt lại mật khẩu của họ bằng cách thêm mã bên dưới vào phần thân của lớp

php artisan make:notification ResetPasswordNotification
31

Thiết lập các tuyến đường cần thiết

Các route của Laravel được lưu trữ trong routes/web. php cho các ứng dụng web và trong các tuyến đường/api. php cho API. Đối với hướng dẫn này, bạn sẽ lưu trữ chúng trong routes/api. php

Lộ trình đăng xuất sẽ được bảo vệ bằng phần mềm trung gian

php artisan make:notification ResetPasswordNotification
97 và
php artisan make:notification ResetPasswordNotification
98, bởi vì chỉ những người dùng đã đăng nhập mới có thể đăng xuất và chỉ những người dùng đã xác minh mới có quyền truy cập vào các điểm cuối khác. Tuyến email xác minh sẽ được bảo vệ bằng phần mềm trung gian
php artisan make:notification ResetPasswordNotification
97. Các tuyến khác không cần xác thực hoặc xác thực người dùng, vì vậy không cần được bảo vệ bởi bất kỳ phần mềm trung gian nào

Để thực hiện việc này, hãy thêm định nghĩa tuyến đường bên dưới vào cuối routes/api. php

php artisan make:notification ResetPasswordNotification
32

Các tuyến đường

    private $token;
    
    public function __construct($data)
    {
        $this->token = $data;
    }
00 và
    private $token;
    
    public function __construct($data)
    {
        $this->token = $data;
    }
01 đã được bảo vệ bằng bộ bảo vệ xác thực tôn nghiêm,
    private $token;
    
    public function __construct($data)
    {
        $this->token = $data;
    }
02. Điều này đảm bảo rằng chỉ những người dùng được xác thực mới có thể truy cập chúng

Kiểm tra ứng dụng

Với API được tạo, đã đến lúc kiểm tra và xác nhận rằng API đang hoạt động bình thường. Có nhiều cách khác nhau để làm như vậy, chẳng hạn như sử dụng Postman hoặc cURL, nhưng chúng tôi sẽ sử dụng Postman

Tuy nhiên, trước khi chúng tôi có thể làm điều đó, hãy khởi động ứng dụng bằng cách chạy lệnh bên dưới

php artisan make:notification ResetPasswordNotification
2

Kiểm tra chức năng đăng ký

Điều đầu tiên cần làm là kiểm tra chức năng đăng ký và đăng nhập. Để làm điều đó, hãy tạo một yêu cầu POST mới trong Postman bằng URL

    private $token;
    
    public function __construct($data)
    {
        $this->token = $data;
    }
03. Sau đó, trong tab Nội dung

  • Chọn loại mã hóa "dữ liệu biểu mẫu"
  • Thêm một biến yêu cầu,
        private $token;
        
        public function __construct($data)
        {
            $this->token = $data;
        }
    04 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,
        private $token;
        
        public function __construct($data)
        {
            $this->token = $data;
        }
    05 và đặt biến này thành mật khẩu của bạn. Độ phức tạp của nó không quan trọng, nhưng nó phải dài ít nhất 8 ký tự
  • Thêm một biến yêu cầu thứ ba,
    php artisan make:notification ResetPasswordNotification
    52 và đặt nó thành cùng một giá trị như bạn đã nhập cho
        private $token;
        
        public function __construct($data)
        {
            $this->token = $data;
        }
    05

Với yêu cầu đã được định cấu hình, hãy gửi yêu cầu đó bằng cách nhấp vào Gửi. Bạn sẽ thấy một phản hồi JSON tương tự như phản hồi bên dưới trong nội dung phản hồi trong Postman

Mẫu email đặt lại mật khẩu Laravel

Kiểm tra chức năng verify email

Để làm được điều này, bạn cần ba điều

  1. Địa chỉ email mà bạn đã đăng ký
  2. Mã PIN gồm 6 chữ số đã được gửi qua email cho bạn
  3. Mã thông báo xác thực. Bạn sẽ tìm thấy điều này trong trường
        private $token;
        
        public function __construct($data)
        {
            $this->token = $data;
        }
    08 trong phản hồi cho yêu cầu đăng nhập mà bạn vừa hoàn thành. Điều này là bắt buộc, vì điểm cuối email xác minh được bảo vệ

Mẫu email đặt lại mật khẩu Laravel

Tạo một yêu cầu POST mới trong Postman bằng URL

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

Sau đó, trong tab Nội dung

  • Chọn loại mã hóa "dữ liệu biểu mẫu"
  • Thêm một biến yêu cầu,
        private $token;
        
        public function __construct($data)
        {
            $this->token = $data;
        }
    04 và đặt giá trị của nó thành địa chỉ email bạn đã đăng ký
  • Thêm một biến yêu cầu khác,
        private $token;
        
        public function __construct($data)
        {
            $this->token = $data;
        }
    08 và đặt giá trị của nó thành mã PIN gồm 6 chữ số đã được gửi qua email cho bạn

Sau đó, trong tab Ủy quyền (có tên là Auth trong các phiên bản Postman mới hơn)

  • Thay đổi danh sách thả xuống "Loại" thành "Mã thông báo mang"
  • Đặt giá trị của trường "Mã thông báo" thành mã thông báo được trả về trong trường
        private $token;
        
        public function __construct($data)
        {
            $this->token = $data;
        }
    08 của phản hồi đối với yêu cầu đăng nhập

Sau đó, gửi yêu cầu bằng cách nhấp vào Gửi. Nếu thành công, bạn sẽ thấy nội dung phản hồi tương tự như ví dụ bên dưới

php artisan make:notification ResetPasswordNotification
34

Kiểm tra chức năng đăng nhập

Tiếp theo, hãy thử đăng nhập. Để làm điều đó, hãy tạo một yêu cầu POST mới trong Postman bằng URL

php artisan make:notification ResetPasswordNotification
003. Sau đó, trong tab Nội dung

  • Chọn loại mã hóa "thô"
  • Bên cạnh trình đơn thả xuống loại mã hóa, thay đổi "TEXT" thành "JSON"
  • Thay thế các trình giữ chỗ trong JSON bên dưới bằng địa chỉ email và mật khẩu của bạn rồi dán nó vào phần nội dung của yêu cầu

php artisan make:notification ResetPasswordNotification
35

Sau đó, gửi yêu cầu bằng cách nhấp vào Gửi. Nếu thành công, bạn sẽ thấy nội dung phản hồi tương tự như trong ảnh chụp màn hình bên dưới

Mẫu email đặt lại mật khẩu Laravel

Kiểm tra chức năng đăng xuất

Để thực hiện việc này, hãy tạo một yêu cầu POST mới trong Postman, sử dụng URL

php artisan make:notification ResetPasswordNotification
004

Sau đó, trong tab Ủy quyền

  • Thay đổi danh sách thả xuống "Loại" thành "Mã thông báo mang"
  • Đặt giá trị của trường "Mã thông báo" thành mã thông báo được trả về trong trường
        private $token;
        
        public function __construct($data)
        {
            $this->token = $data;
        }
    08 của phản hồi đối với yêu cầu đăng nhập

Mẫu email đặt lại mật khẩu Laravel

Sau đó, gửi yêu cầu bằng cách nhấp vào Gửi. Nếu thành công, bạn sẽ thấy nội dung phản hồi tương tự như ví dụ bên dưới

php artisan make:notification ResetPasswordNotification
36

Kiểm tra chức năng đặt lại mật khẩu

Chuyển sang phần kiểm tra đặt lại mật khẩu, trước tiên bạn cần yêu cầu mã PIN gồm 6 chữ số, sau đó bạn có thể đặt lại mật khẩu. Trường bắt buộc duy nhất là

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

Để thực hiện việc này, hãy tạo một yêu cầu POST mới trong Postman, sử dụng URL

php artisan make:notification ResetPasswordNotification
007. Sau đó, trong tab Nội dung

  • Chọn loại mã hóa "dữ liệu biểu mẫu"
  • Thêm một biến yêu cầu,
        private $token;
        
        public function __construct($data)
        {
            $this->token = $data;
        }
    04 và đặt giá trị của nó thành địa chỉ email bạn đã đăng ký

Mẫu email đặt lại mật khẩu Laravel

Sau đó, gửi yêu cầu bằng cách nhấp vào Gửi. Nếu thành công, bạn sẽ thấy nội dung phản hồi tương tự như ví dụ bên dưới

php artisan make:notification ResetPasswordNotification
37

Tiếp theo, gửi mã PIN bạn đã được gửi qua email để xác minh. Để thực hiện việc này, hãy tạo một yêu cầu POST mới trong Postman, sử dụng URL

php artisan make:notification ResetPasswordNotification
009. Sau đó, trong tab Nội dung

  • Chọn loại mã hóa "dữ liệu biểu mẫu"
  • Thêm một biến yêu cầu,
        private $token;
        
        public function __construct($data)
        {
            $this->token = $data;
        }
    04 và đặt giá trị của nó thành địa chỉ email bạn đã đăng ký
  • Thêm một biến yêu cầu khác,
        private $token;
        
        public function __construct($data)
        {
            $this->token = $data;
        }
    08 và đặt giá trị của nó thành mã PIN gồm 6 chữ số vừa được gửi qua email cho bạn, trong email Đặt lại mật khẩu

Mẫu email đặt lại mật khẩu Laravel

Sau đó, gửi yêu cầu bằng cách nhấp vào Gửi. Nếu thành công, bạn sẽ thấy nội dung phản hồi tương tự như ví dụ bên dưới

php artisan make:notification ResetPasswordNotification
38

Vì mã PIN đã được xác minh, giờ đây bạn có thể đặt lại mật khẩu của mình. Để thực hiện việc này, hãy tạo một yêu cầu POST mới trong Postman, sử dụng URL

php artisan make:notification ResetPasswordNotification
007. Sau đó, trong tab Nội dung

  • Chọn loại mã hóa "dữ liệu biểu mẫu"
  • Thêm một biến yêu cầu,
        private $token;
        
        public function __construct($data)
        {
            $this->token = $data;
        }
    04 và đặt giá trị của nó thành địa chỉ email bạn đã đăng ký
  • Thêm biến yêu cầu thứ hai,
        private $token;
        
        public function __construct($data)
        {
            $this->token = $data;
        }
    05 và đặt giá trị của nó thành mật khẩu mới của bạn
  • Thêm biến yêu cầu thứ ba,
    php artisan make:notification ResetPasswordNotification
    52 và cũng đặt giá trị của nó cho mật khẩu mới của bạn

Mẫu email đặt lại mật khẩu Laravel

Sau đó, gửi yêu cầu bằng cách nhấp vào Gửi. Nếu thành công, bạn sẽ thấy nội dung phản hồi tương tự như ví dụ bên dưới

php artisan make:notification ResetPasswordNotification
39

Phần kết luận

Trong hướng dẫn này, bạn đã học cách tạo chức năng Quên mật khẩu và Xác minh email tùy chỉnh trong Laravel. Kiểm tra tài liệu chính thức để biết thêm về xác minh email mặc định của Laravel và đặt lại mật khẩu. Mã cho dự án này là mã nguồn mở và có sẵn trên GitHub

Funke là một người yêu thích công nghệ, quan tâm sâu sắc đến việc xây dựng và thúc đẩy các cộng đồng công nghệ bền vững, đặc biệt là thanh thiếu niên và thanh niên. Cô ấy là một nhà phát triển phụ trợ, người đam mê phát triển cộng đồng và đã xuất bản các bài viết trên nhiều blog bao gồm cả blog cá nhân của cô ấy

Khi cô ấy không viết mã hoặc tạo nội dung kỹ thuật, cô ấy đang phục vụ nhân loại cho cộng đồng địa phương của mình để giải quyết các vấn đề xã hội. Bạn có thể liên hệ với cô ấy trên Twitter và Github

Mẫu email đặt lại mật khẩu laravel ở đâu?

Tạo mật khẩu đặt lại Có thể gửi thư . php và mẫu chế độ xem tương ứng của nó, trong tài nguyên/lượt xem/email/mật khẩu .

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

Email đặt lại mật khẩu tùy chỉnh trong Laravel .
Đặt lại mật khẩu. toMailUsing(function ($notifiable, $token) {
$url = tuyến đường ('mật khẩu. đặt lại',$token). '? . $notifiable->getEmailForPasswordReset();
trở lại (MailMessage()) mới
->subject('Đặt lại mật khẩu')
-> xem('email. đặt lại', thu gọn ('url'));

Làm cách nào để sử dụng đặt lại mật khẩu trong laravel?

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ạo API đặt lại mật khẩu trong laravel?

Bước 1. Tạo một 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')