Triển khai OAuth 2.0 và OpenID Connect để xác thực bên thứ ba an toàn trong Node.js Express

Tram Ho

Giới thiệu về OAuth 2.0 và OpenID Connect

OAuth 2.0 là một khung ủy quyền cho phép các ứng dụng của bên thứ ba thay mặt người dùng truy cập các tài nguyên hạn chế mà không làm lộ thông tin đăng nhập của họ. Mặt khác, OpenID Connect là một lớp nhận dạng được xây dựng trên OAuth 2.0, cung cấp khả năng xác thực. Bằng cách kết hợp cả hai, chúng tôi có thể xác thực người dùng một cách an toàn và cho phép truy cập vào các tài nguyên được bảo vệ.

Trong bài viết này, tôi sẽ hướng dẫn bạn quy trình triển khai OAuth 2.0 và OpenID Connect trong ứng dụng Node.js Express. Chúng tôi sẽ sử dụng Passport.js, một phần mềm trung gian phổ biến để xác thực, để hợp lý hóa quy trình.

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

Trước khi đi sâu vào, hãy đảm bảo rằng bạn đã cài đặt các phần mềm sau trên máy của mình:

  • Node.js (v14 trở lên)
  • npm (v6 trở lên)
  • Trình chỉnh sửa mã, chẳng hạn như Visual Studio Code

Thiết lập ứng dụng Node.js Express

Đầu tiên, tạo một thư mục mới cho dự án của bạn và điều hướng đến nó trong thiết bị đầu cuối của bạn. Sau đó, khởi tạo dự án bằng npm:

Cài đặt phụ thuộc

Bây giờ, hãy cài đặt các gói cần thiết:

Tạo máy chủ tốc hành

Tạo tệp index.js trong thư mục gốc của dự án và thêm đoạn mã sau để thiết lập máy chủ Express cơ bản:

Thiết lập Passport.js với OpenID Connect

Định cấu hình Passport.js

Trước tiên, hãy tạo tệp .env trong thư mục gốc của dự án và lưu trữ ID ứng dụng khách, bí mật ứng dụng khách và URL gọi lại. Những thứ này sẽ được cung cấp bởi nhà cung cấp xác thực bên thứ ba mà bạn chọn hợp tác (ví dụ: Google, Facebook, v.v.):

Tiếp theo, tạo một tệp có tên passport-setup.js trong thư mục gốc của dự án của bạn và thêm mã sau để định cấu hình Passport.js với chiến lược OpenID Connect:

Thay thế https://your-auth-provider.com bằng URL của nhà phát hành thích hợp cho nhà cung cấp xác thực bạn đã chọn.

Cập nhật máy chủ Express

Bây giờ, hãy cập nhật tệp index.js của bạn để bao gồm Passport.js và cấu hình OpenID Connect:

Kiểm tra ứng dụng

Bây giờ, bạn đã sẵn sàng thử nghiệm ứng dụng Node.js Express của mình với OAuth 2.0 và OpenID Connect. Khởi động máy chủ bằng cách chạy:

Truy cập http://localhost:3000/login trong trình duyệt của bạn và nhấp vào liên kết “Đăng nhập bằng nhà cung cấp danh tính của bạn”. Bạn sẽ được chuyển hướng đến trang đăng nhập của nhà cung cấp dịch vụ xác thực của mình. Sau khi đăng nhập, bạn sẽ được chuyển hướng trở lại tuyến đường /profile , nơi bạn sẽ thấy lời chào được cá nhân hóa cùng với tên hiển thị của mình.

Phần kết luận

Trong bài viết này, chúng tôi đã trình bày cách triển khai OAuth 2.0 và OpenID Connect trong ứng dụng Node.js Express bằng Passport.js. Phương pháp xác thực an toàn này cho phép người dùng tự xác thực mà không để lộ thông tin đăng nhập của họ cho ứng dụng của bạn, dẫn đến quy trình xác thực an toàn hơn và đáng tin cậy hơn.

Hãy nhớ thay thế các chi tiết cấu hình mẫu (URL của nhà phát hành, ID ứng dụng khách, bí mật ứng dụng khách, v.v.) bằng thông tin của nhà cung cấp xác thực thực tế của bạn khi triển khai ứng dụng của bạn vào sản xuất.

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