Tuyến đường (đặt lại mật khẩu không được xác định Laravel 8)

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

laravel new custom_authentication
0

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à 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
1

Tiế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ạn

laravel new custom_authentication
0

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

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

laravel new custom_authentication
1

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

laravel new custom_authentication
2

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

laravel new custom_authentication
3

Sau đó, 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ưới

laravel new custom_authentication
4

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

laravel new custom_authentication
5

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 đượ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
8

Tiế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ưới

laravel new custom_authentication
6

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

laravel new custom_authentication
7

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

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ệp

laravel new custom_authentication
9

Sau đó, 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ớp

cd custom_authentication
0

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 config:cache
    
    2 để 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 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
4

cd custom_authentication
1

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

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ụ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 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
3

cd custom_authentication
2

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

cd custom_authentication
3

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 config:cache
0 sau vào đầu tệp

cd custom_authentication
4

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

protected $fillable = [
    'email',
    'password',
];
0 để khớp với đoạn mã sau

cd custom_authentication
5

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

protected $fillable = [
    'email',
    'password',
];
1 trong app\Http\Kernel. php

cd custom_authentication
6

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

cd custom_authentication
7

Thao 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ệp

cd custom_authentication
8

Sau đó, đị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ớp

cd custom_authentication
9

Phươ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ép

Phươ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ớ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 serve
0

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

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

laravel new custom_authentication
4

Sau đó, 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ớp

laravel new custom_authentication
5

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

php artisan serve
3

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 serve
4

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 serve
5

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 config:cache
0 cần thiết vào đầu tệp

php artisan serve
6

Tiế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ớp

php artisan serve
7

Phươ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ẩu

Tiế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
04

php artisan serve
8

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 serve
9

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 config:cache
0 sau vào đầu tệp

cd custom_authentication
8

Sau đó, 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ớp

DB_CONNECTION=
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
1

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

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=
2

Cá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ú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 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,
    laravel new custom_authentication
    
    14 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,
    laravel new custom_authentication
    
    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ự
  • Thêm một biến yêu cầu thứ ba,
    php artisan config:cache
    
    2 và đặt nó thành cùng một giá trị như bạn đã nhập cho
    laravel new custom_authentication
    
    15

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

  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
    laravel new custom_authentication
    
    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ệ

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

laravel new custom_authentication
19

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,
    laravel new custom_authentication
    
    14 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,
    laravel new custom_authentication
    
    18 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
    laravel new custom_authentication
    
    18 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

DB_CONNECTION=
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
4

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

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=
5

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

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
04

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
    laravel new custom_authentication
    
    18 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

DB_CONNECTION=
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
6

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à

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,
    laravel new custom_authentication
    
    14 và đặt giá trị của nó thành địa chỉ email bạn đã đăng ký

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

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

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,
    laravel new custom_authentication
    
    14 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,
    laravel new custom_authentication
    
    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ẩu

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=
8

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

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,
    laravel new custom_authentication
    
    14 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,
    laravel new custom_authentication
    
    15 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 config:cache
    
    2 và cũng đặt giá trị của nó cho mật khẩu mới của bạn

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=
9

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

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

Đặt lại mật khẩu .
Tuyến đường. get['/reset-password/{token}', function [$token] {
xem lại ['auth. đặt lại mật khẩu', ['token' => $token]];
}]-> phần mềm trung gian['khách']->tên['mật khẩu. cài lại'];

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

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']];

Chủ Đề