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
//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
laravel new custom_authentication
Đ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
cd custom_authentication
Bây giờ, khởi động ứng dụng bằng cách chạy lệnh sau
php artisan serve
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
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
DB_CONNECTION=
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
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
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=CustomAuth
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 config:cache
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
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=CustomAuth
0, cho biết các trường có thể điền, để khớp với ví dụ mã bên dưới________số 8
Sau đó, cập nhật phương thức
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=CustomAuth
1 của tệp di chuyển để khớp với ví dụ bên dướilaravel new custom_authentication
0Thiết lập xác thực
Bạn sẽ sử dụng Laravel Sanctum trong hướng dẫn này, đây là một 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
laravel new custom_authentication
1Tiếp theo, sử dụng lệnh
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=CustomAuth
2 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 MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=CustomAuth
3 của ứng dụng của bạnlaravel new custom_authentication
0Sau đó, 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
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=CustomAuth
4 của bạn, bằng cách bỏ ghi chú dòng được đánh dấu trong ví dụ bên dướilaravel new custom_authentication
1Chạ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
laravel new custom_authentication
2Thê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
laravel new custom_authentication
3Sau đó, mở ứng dụng/Mail/VerifyEmail. php và cập nhật phương thức
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=CustomAuth
5 để khớp với mã bên dướilaravel new custom_authentication
4Sau đó, thêm biến thành viên bên dưới vào đầu lớp
laravel new custom_authentication
5MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=CustomAuth
6 được đặt làm biến thành viên chung để nó có thể được chuyển từ MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=CustomAuth
7 [sẽ sớm được tạo] sang hàm tạo của MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=CustomAuth
8Tiếp theo, cập nhật hàm
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=CustomAuth
9 của lớp để khớp với mã bên dướilaravel new custom_authentication
6Và 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
laravel new custom_authentication
7Thiế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
laravel new custom_authentication
8Đ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 config:cache
0 sau vào đầu tệplaravel new custom_authentication
9Sau đó, xác định phương thức
php artisan config:cache
1 bằng cách thêm mã bên dưới vào lớpcd custom_authentication
0Mã 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
2 để nhập lại mật khẩu của bạnphp artisan config:cache
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 config:cache
3 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 config:cache
4cd custom_authentication
1Phươ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
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=CustomAuth
7 với thông báo lỗi áp dụngThê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 config:cache
6 bằng cách thêm đoạn mã sau vào php artisan config:cache
7 sau phương thức php artisan config:cache
3cd custom_authentication
2Mã 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
cd custom_authentication
3Lệ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 config:cache
0 sau vào đầu tệpcd custom_authentication
4Sau đó, cập nhật phương thức
protected $fillable = [
'email',
'password',
];
0 để khớp với đoạn mã saucd custom_authentication
5Tiế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
protected $fillable = [
'email',
'password',
];
1 trong app\Http\Kernel. phpcd custom_authentication
6Thiế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
cd custom_authentication
7Thao tác này sẽ tạo một tệp có tên
protected $fillable = [
'email',
'password',
];
2 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 config:cache
0 sau vào đầu tệpcd custom_authentication
8Sau đó, định nghĩa các phương thức
protected $fillable = [
'email',
'password',
];
4 và protected $fillable = [
'email',
'password',
];
5 bằng cách sao chép đoạn mã sau vào phần thân của lớpcd custom_authentication
9Phương thức
protected $fillable = [
'email',
'password',
];
4 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épPhương pháp
protected $fillable = [
'email',
'password',
];
5 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ớiThê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 serve
0Vớ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
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=CustomAuth
5 như saularavel new custom_authentication
4Sau đó, xác định biến thành viên lớp
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=CustomAuth
6 ở đầu lớplaravel new custom_authentication
5Tiếp theo, cập nhật phương thức `build[]` như sau
php artisan serve
3Sau đó, 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 serve
4Thiế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 serve
5Nó 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 config:cache
0 cần thiết vào đầu tệpphp artisan serve
6Tiếp theo, xác định phương thức
laravel new custom_authentication
01, bằng cách dán mã bên dưới vào lớpphp artisan serve
7Phương thức
laravel new custom_authentication
01 xác thực địa chỉ email được gửi trong yêu cầu và kiểm tra xem địa chỉ đó có được liên kết với người dùng hiện tại hay không và liệu địa chỉ đó 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ẩuTiếp theo, thêm phương thức
laravel new custom_authentication
03, bên dưới, sau phương thức laravel new custom_authentication
04php artisan serve
8Phươ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 serve
9Nó 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 config:cache
0 sau vào đầu tệpcd custom_authentication
8Sau đó, triển khai phương thức
laravel new custom_authentication
06 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ớpDB_CONNECTION=
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
1Thiế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
laravel new custom_authentication
07 và laravel new custom_authentication
08, 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 laravel new custom_authentication
07. 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
DB_CONNECTION=
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
2Các tuyến đường
laravel new custom_authentication
10 và laravel new custom_authentication
11 đã được bảo vệ bằng bộ bảo vệ xác thực tôn nghiêm, laravel new custom_authentication
12. Đ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úngKiể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 serve
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
laravel new custom_authentication
13. 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,
14 và đặt biến này thành địa chỉ email của bạnlaravel new custom_authentication
- Thêm biến yêu cầu thứ hai,
15 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ựlaravel new custom_authentication
- Thêm một biến yêu cầu thứ ba,
2 và đặt nó thành cùng một giá trị như bạn đã nhập chophp artisan config:cache
15laravel new custom_authentication
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
Kiểm tra chức năng verify email
Để làm được điều này, bạn cần ba điều
- Địa chỉ email mà bạn đã đăng ký
- Mã PIN gồm 6 chữ số đã được gửi qua email cho bạn
- Mã thông báo xác thực. Bạn sẽ tìm thấy điều này trong trường
18 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ệlaravel new custom_authentication
Tạo một yêu cầu POST mới trong Postman bằng URL
laravel new custom_authentication
19Sau đó, 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,
14 và đặt giá trị của nó thành địa chỉ email bạn đã đăng kýlaravel new custom_authentication
- Thêm một biến yêu cầu khác,
18 và đặt giá trị của nó thành mã PIN gồm 6 chữ số đã được gửi qua email cho bạnlaravel new custom_authentication
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
18 của phản hồi đối với yêu cầu đăng nhậplaravel new custom_authentication
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
DB_CONNECTION=
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
4Kiể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
laravel new custom_authentication
03. 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
DB_CONNECTION=
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
5Sau đó, 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
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
laravel new custom_authentication
04Sau đó, 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
18 của phản hồi đối với yêu cầu đăng nhậplaravel new custom_authentication
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
DB_CONNECTION=
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
6Kiể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à
laravel new custom_authentication
14Để 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
laravel new custom_authentication
07. 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,
14 và đặt giá trị của nó thành địa chỉ email bạn đã đăng kýlaravel new custom_authentication
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
DB_CONNECTION=
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
7Tiế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
laravel new custom_authentication
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,
14 và đặt giá trị của nó thành địa chỉ email bạn đã đăng kýlaravel new custom_authentication
- Thêm một biến yêu cầu khác,
18 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ẩularavel new custom_authentication
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
DB_CONNECTION=
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
8Vì 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
laravel new custom_authentication
07. 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,
14 và đặt giá trị của nó thành địa chỉ email bạn đã đăng kýlaravel new custom_authentication
- Thêm biến yêu cầu thứ hai,
15 và đặt giá trị của nó thành mật khẩu mới của bạnlaravel new custom_authentication
- Thêm biến yêu cầu thứ ba,
2 và cũng đặt giá trị của nó cho mật khẩu mới của bạnphp artisan config:cache
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
DB_CONNECTION=
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
9Phầ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