Triển khai Chức năng Đặt lại Mật khẩu An toàn trong Node.js Express

Tram Ho

1. Giới thiệu

Trong bài viết này, chúng ta sẽ thảo luận về cách triển khai chức năng đặt lại mật khẩu an toàn trong ứng dụng Node.js Express. Đặt lại mật khẩu là một tính năng quan trọng để đảm bảo tính bảo mật và trải nghiệm người dùng tốt. Để đạt được điều này, chúng tôi sẽ thực hiện từng bước quy trình, từ thiết lập môi trường đến gửi email đặt lại và cuối cùng là cập nhật mật khẩu của người dùng.

2. Thiết lập dự án

2.1 Khởi tạo dự án

Đầu tiên, tạo một thư mục mới cho dự án của bạn và điều hướng vào đó bằng dòng lệnh. Sau đó, chạy lệnh sau để khởi tạo dự án bằng tệp package.json :

2.2 Cài đặt phụ thuộc

Tiếp theo, cài đặt các phụ thuộc cần thiết cho dự án này bằng cách chạy lệnh sau:

Những phụ thuộc này bao gồm:

  • express : Khung Express cốt lõi
  • mongoose : Thư viện mô hình hóa đối tượng MongoDB cho Node.js
  • bcryptjs : Một thư viện để băm và so sánh mật khẩu
  • jsonwebtoken : Một thư viện để tạo và xác minh JSON Web Tokens
  • nodemailer : Một mô-đun để gửi email
  • dotenv : Một mô-đun để tải các biến môi trường từ .env file

3. Thiết lập môi trường

3.1 Tạo tệp .env

Tạo tệp .env trong thư mục gốc của dự án để lưu trữ dữ liệu nhạy cảm và cấu hình dành riêng cho môi trường. Thêm các dòng sau vào tệp:

Thay thế các trình giữ chỗ bằng các giá trị thích hợp cho thông tin xác thực tài khoản và dịch vụ email của bạn.

3.2 Tải biến môi trường

Trong tệp ứng dụng chính (ví dụ: app.js ), hãy nhập và định cấu hình mô-đun dotenv để tải các biến môi trường từ tệp .env :

4. Thiết lập cơ sở dữ liệu

4.1 Kết nối với MongoDB

Sử dụng Mongoose để thiết lập kết nối tới cơ sở dữ liệu MongoDB. Cập nhật tệp app.js của bạn bằng mã sau:

4.2 Xác định lược đồ người dùng và mô hình

Tạo một thư mục mới có tên models và bên trong nó, tạo một tệp có tên User.js . Xác định lược đồ và mô hình Người dùng bằng mã sau:

5. Triển khai chức năng Đặt lại mật khẩu

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

Tạo một thư mục mới có tên là routes và bên trong thư mục đó, tạo một tệp có tên auth.js . Thiết lập các tuyến đường sau:

  • /auth/forgot-password : Để bắt đầu quá trình đặt lại mật khẩu
  • /auth/reset-password : Để xử lý việc đặt lại mật khẩu thực tế

Bây giờ, hãy nhập và sử dụng bộ định tuyến auth.js trong tệp app.js :

5.2 Tạo bộ điều khiển xác thực

Tạo một thư mục mới có tên là controllers và bên trong nó, tạo một tệp có tên authController.js . Tệp này sẽ chứa các chức năng của bộ điều khiển để xử lý quá trình đặt lại mật khẩu.

5.3 Thực hiện chức năng quên mật khẩu

Trong tệp authController.js , hãy triển khai chức năng forgetPassword để xử lý yêu cầu đặt lại mật khẩu.

5.4 Thực hiện chức năng resetPassword

Trong tệp authController.js , hãy triển khai chức năng resetPassword để xử lý xác nhận đặt lại mật khẩu và cập nhật mật khẩu của người dùng.

6. Kiểm tra việc triển khai

Để kiểm tra chức năng đặt lại mật khẩu, bạn có thể sử dụng các công cụ như Postman hoặc curl để gửi yêu cầu HTTP tới các tuyến /auth/forgot-password/auth/reset-password .

  • Gửi yêu cầu POST tới /auth/forgot-password bằng địa chỉ email hợp lệ trong phần thân yêu cầu.
  • Kiểm tra hộp thư đến email của bạn để tìm email đặt lại mật khẩu và nhấp vào liên kết đặt lại.
  • Gửi yêu cầu POST tới /auth/reset-passwor d với mã thông báo từ liên kết đặt lại và mật khẩu mới trong nội dung yêu cầu.
  • Kiểm tra hộp thư đến email của bạn để biết email xác nhận đặt lại mật khẩu.

Phần kết luận

Trong bài viết này, chúng tôi đã triển khai thành công chức năng đặt lại mật khẩu an toàn trong ứng dụng Node.js Express. Chúng ta đã xem qua toàn bộ quá trình, từ thiết lập môi trường và cơ sở dữ liệu đến xử lý các yêu cầu đặt lại mật khẩu và cập nhật mật khẩu của người dùng.

Bằng cách làm theo các bước này, bạn có thể đảm bảo rằng ứng dụng của mình cung cấp trải nghiệm đặt lại mật khẩu an toàn và thân thiện với người dùng. Luôn nhớ sử dụng các thư viện cập nhật và tuân theo các phương pháp hay nhất khi xử lý dữ liệu nhạy cảm, chẳng hạn như mật khẩu và mã thông báo.

Và cuối cùng

Như mọi khi, tôi hy vọng bạn thích bài viết này và có một cái gì đó mới. Xin cảm ơn và hẹn gặp lại các bạn trong những bài viết tiếp theo!

Nếu các bạn thích bài viết này thì hãy cho mình 1 like và subscribe để ủng hộ mình nhé. Cảm ơn.

Giới thiệu

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo