Bạn đã sẵn sàng để việc đăng nhập vào website của mình trở nên dễ dàng hơn chưa? Hãy cùng tìm hiểu hướng dẫn từng bước về cách tích hợp Google OAuth 2.0 cho việc đăng nhập vào website bên thứ ba. Chúng tôi sẽ hướng dẫn bạn qua từng bước, giúp bạn dễ dàng nâng cao trải nghiệm người dùng và tăng cường bảo mật.
Trước khi bắt đầu, hãy cùng hiểu rõ về OAuth 2.0.
OAuth 2.0 là gì?
OAuth 2.0 là một giao thức ủy quyền mở cho phép các ứng dụng bên thứ ba truy cập các tài nguyên được bảo vệ mà không cần cung cấp tên người dùng và mật khẩu của người dùng. Nó cho phép người dùng ủy quyền cho các ứng dụng bên thứ ba truy cập các tài nguyên được bảo vệ của họ mà không tiết lộ thông tin xác thực trực tiếp. OAuth 2.0 được sử dụng rộng rãi trong các ứng dụng web và di động để cung cấp cơ chế ủy quyền an toàn.
Giao thức OAuth 2.0 liên quan đến các vai trò sau:
- Chủ tài nguyên: Thường là người dùng, người sở hữu các tài nguyên được bảo vệ, chẳng hạn như hình ảnh, hồ sơ cá nhân, v.v.
- Khách hàng: Ứng dụng bên thứ ba muốn truy cập các tài nguyên được bảo vệ của chủ tài nguyên.
- Máy chủ ủy quyền: Máy chủ chịu trách nhiệm xác thực chủ tài nguyên và ủy quyền cho khách hàng truy cập các tài nguyên.
- Máy chủ tài nguyên: Máy chủ lưu trữ các tài nguyên được bảo vệ và cung cấp API để truy cập chúng.

Giao thức OAuth 2.0 đạt được ủy quyền thông qua Quy trình ủy quyền. Các quy trình ủy quyền thông thường bao gồm:
- Cấp mã ủy quyền: Khách hàng chuyển hướng người dùng đến máy chủ ủy quyền, người dùng đăng nhập và ủy quyền, và máy chủ ủy quyền trả về một mã ủy quyền cho khách hàng, mà khách hàng sau đó sử dụng để đổi lấy token truy cập.
- Cấp thông tin xác thực mật khẩu của chủ tài nguyên: Chủ tài nguyên cung cấp trực tiếp tên người dùng và mật khẩu cho khách hàng, và khách hàng sử dụng các thông tin xác thực này để yêu cầu token truy cập từ máy chủ ủy quyền.
- Cấp thông tin xác thực khách hàng: Khách hàng sử dụng thông tin xác thực của mình để yêu cầu trực tiếp một token truy cập từ máy chủ ủy quyền, phù hợp cho các trường hợp mà khách hàng cần truy cập tài nguyên.
- Cấp ngầm: Sử dụng để lấy trực tiếp một token truy cập từ khách hàng trong ứng dụng dựa trên trình duyệt.
Cấp ngầm Google OAuth 2.0: Triển khai & Gỡ lỗi Apidog
Google sử dụng quy trình Cấp ngầm cho ủy quyền OAuth 2.0 trên web, vì vậy hãy cùng tìm hiểu cách triển khai nó và làm thế nào để gỡ lỗi trong Apidog.
Bước 1: Cấu hình Client ID và Redirect URL
Trước tiên, chúng ta cần truy cập Google API Console để lấy thông tin xác thực OAuth 2.0. Nhấn vào tùy chọn "Credentials" trong thanh bên trái, sau đó tạo một Client ID OAuth.

Sau đó, chọn loại ứng dụng của bạn, có thể là một trang web, ứng dụng Android hoặc iOS, tùy thuộc vào doanh nghiệp của bạn. Tiếp theo, trong trường "Authorized JavaScript origins", nhập tên miền website của bạn.
Nếu đó là một debug cục bộ, thường thiết lập nó thành http://localhost hoặc http://localhost:8000 nếu có port. Mục đích là để Google biết nguồn HTTP nơi website của bạn được lưu trữ. Sau đó, trong trường "Authorized redirect URIs", nhập địa chỉ chuyển hướng của bạn, thường là đường dẫn đăng nhập hoặc bất kỳ tên miền nào bạn có thể truy cập.

Sau khi cấu hình tất cả các tùy chọn liên quan, nhấn nút "CREATE" để lưu chúng. Điều này sẽ tạo ra Client ID và Client secret, mà chúng ta sẽ cần sử dụng sau này.

Bước 2: Cấu hình Trang yêu cầu ủy quyền OAuth
Trên trang này, nhấn vào tùy chọn "OAuth consent screen" trong thanh bên trái để tạo một ứng dụng.

Cấu hình màn hình đồng ý OAuth
Trên trang này, điền thông tin cơ bản của ứng dụng, chẳng hạn như tên, email và tên miền. Thông tin trên trang này sẽ được hiển thị trong hộp đăng nhập ủy quyền pop-up, giúp người dùng cuối hiểu bạn là ai và cách để liên hệ với bạn.

Sau đó, cấu hình các phạm vi. Đi đến bước tiếp theo và chọn quyền truy cập mà bạn muốn, sau đó lưu chúng.

Bạn cũng có thể thêm một tài khoản thử nghiệm, đó là một tài khoản email có thể thực hiện đăng nhập OAuth 2.0 trước khi ra mắt chính thức, với giới hạn tối đa là 100 người dùng được phép.

Sau khi hoàn thành cấu hình trên, chúng ta có thể chính thức vào dòng chính của ủy quyền OAuth 2.0.
Bước 3: Lấy Access Token
Ngay khi bước đầu tiên và thứ hai đã sẵn sàng, chúng ta có thể yêu cầu token truy cập. Để minh họa bước này, chúng ta sẽ sử dụng Apidog, một công cụ gỡ lỗi và quản lý API xuất sắc. Bạn có thể lấy trực tiếp token trong Apidog.

Các tính năng chính của Apidog trong việc triển khai quy trình đăng nhập Google OAuth 2.0:
- Cấu hình đơn giản: Apidog cung cấp một giao diện cấu hình tập trung, cho phép các nhà phát triển dễ dàng nhập Client ID, Redirect URL và các tham số chính khác, mà không cần phải tự tay xây dựng các URL yêu cầu ủy quyền phức tạp.
- Lựa chọn chế độ ủy quyền thông minh: Apidog hỗ trợ tự động nhận dạng chế độ ủy quyền của Google và cung cấp khả năng chọn chế độ Cấp ngầm, loại bỏ sự phiền toái khi chuyển đổi giữa các chế độ ủy quyền khác nhau.
- Có thể lấy token truy cập chỉ với một cú nhấp chuột: Apidog có thể hướng dẫn các nhà phát triển qua toàn bộ quy trình ủy quyền và tự động lấy token truy cập, giảm thiểu đáng kể độ khó trong việc lấy token.
- Quản lý token tự động: Apidog sẽ tự động thêm token truy cập đã lấy vào header yêu cầu hoặc các tham số truy vấn, mà không yêu cầu các nhà phát triển phải tự tay xử lý việc truyền token.
- Truy cập tài nguyên liền mạch: Với token truy cập do Apidog cung cấp, các nhà phát triển có thể sử dụng nó để truy cập trực tiếp các tài nguyên mở của Google, mà không cần thêm ủy quyền phức tạp khác.
Trong Apidog, tạo một dự án HTTP mới, sau đó tạo một yêu cầu mới và chọn tùy chọn "Edit Document -> Auth -> OAuth 2.0".

Chọn chế độ ủy quyền "Cấp ngầm", vì "Google OAuth 2.0 cho Ứng dụng Web phía Client" sử dụng Cấp ngầm.

Nhập Client ID và Redirect URL. Các tham số dịch vụ Google OAuth 2.0 mà bạn đã cấu hình ở bước đầu tiên.

Lấy một Access Token
Theo tài liệu chính thức của Google, để申请 một access token, URL cần yêu cầu là:
https://accounts.google.com/o/oauth2/v2/auth
Bạn có thể điền địa chỉ này vào trường "Auth URL".

Tài liệu chính thức của Google cũng yêu cầu các tham số bổ sung phải được đưa vào đường dẫn URL, chẳng hạn như:
https://accounts.google.com/o/oauth2/v2/auth?
scope=https%3A//www.googleapis.com/auth/drive.metadata.readonly&
include_granted_scopes=true&
response_type=token&
state=state_parameter_passthrough_value&
redirect_uri=https%3A//oauth2.example.com/code&
client_id=client_id
Ghi chú: Trong các ứng dụng thực tế, không cần phải ngắt dòng.
Tuy nhiên, trong Apidog, điều này thường không cần thiết, vì các tham số cần thiết đã được cấu hình riêng trong các tùy chọn khác.
Nếu bạn muốn cấu hình chúng, bạn có thể nhấn vào biểu tượng bên cạnh "Auth URL" để cấu hình hoặc nhấn "More" để mở rộng các mục cấu hình khác, chẳng hạn như thêm giá trị openid
vào "Scope" ở đây, đó là quyền được chọn trong "Bước 2" ở trên.

Sau khi tất cả các mục cấu hình ở trên được thiết lập, bạn có thể nhấn nút "Get Token" để lấy token. Sau khi nhấn, nếu đây là lần đầu đăng nhập, một cửa sổ sẽ xuất hiện để bạn ủy quyền, và bạn có thể điền thông tin.

Sau khi điền tên người dùng và mật khẩu, bạn có thể nhận một mã xác minh qua tin nhắn văn bản để xác minh tài khoản của bạn, hoặc bạn có thể liên kết tài khoản trực tiếp và nhận token truy cập.

Khi hoàn tất ủy quyền, token truy cập sẽ tự động được lấy và hiển thị trên trang, và các thông tin khác trả về từ Google cũng sẽ được phân tích và hiển thị.

Bước 4: Truy cập Tài nguyên Mở dựa trên Token
Với token truy cập đã lấy được, bạn có thể sử dụng nó để truy cập các tài nguyên mở của Google. Bạn có thể khám phá tất cả các API của Google có sẵn và các phạm vi quyền của chúng trong OAuth 2.0 Playground.
Khi gửi yêu cầu, Apidog sẽ tự động đính kèm token vào header Authorization như một token Bearer. Nếu bạn muốn bao gồm token trong URL, bạn có thể điều chỉnh tùy chọn "Token Add Position" trong cài đặt Apidog thành "Query Params".

Kết luận
Tóm lại, việc triển khai đăng nhập Google OAuth 2.0 bao gồm bốn bước chính. Đầu tiên, trong bước 1, bạn cần cấu hình Client ID và Redirect URL để lấy thông tin xác thực OAuth 2.0. Sau đó, trong bước 2, bạn cần xác định phạm vi quyền truy cập và tạo một ứng dụng, cấu hình thông tin liên quan, bao gồm quyền truy cập và tài khoản thử nghiệm.
Tiếp theo, trong bước 3, bạn có thể lấy token truy cập thông qua yêu cầu token, với sự giúp đỡ của một công cụ như Apidog. Cuối cùng, trong bước 4, bạn có thể sử dụng token truy cập đã lấy được để truy cập các tài nguyên mở của Google.