Hướng dẫn này giúp bạn lựa chọn giữa việc sử dụng thư viện Dịch vụ nhận dạng của Google để uỷ quyền cho người dùng hoặc triển khai thư viện JavaScript của riêng bạn. Thao tác này giúp bạn quyết định quy trình uỷ quyền OAuth 2.0 nào phù hợp nhất với ứng dụng web của mình.
Trước khi đọc hướng dẫn này, giả sử bạn đã quen thuộc với các thuật ngữ và khái niệm được mô tả trong hướng dẫn Tổng quan và Cách hoạt động của quy trình uỷ quyền người dùng.
Thư viện GIS chạy trong những trình duyệt được hỗ trợ này trên thiết bị của người dùng. Thư viện này không dùng cho các khung JavaScript phía máy chủ như Node.js, thay vào đó, hãy dùng thư viện ứng dụng Node.js của Google.
Hướng dẫn này chỉ đề cập đến các chủ đề về việc uỷ quyền và chia sẻ dữ liệu. Thư viện này không xem xét hoạt động xác thực người dùng, thay vào đó, hãy xem hướng dẫn Đăng nhập bằng Google và Di chuyển từ tính năng Đăng nhập bằng Google để đăng ký và đăng nhập người dùng.
Quyết định xem thư viện GIS có phù hợp với bạn hay không
Bạn phải chọn xem việc sử dụng thư viện của Google hay tạo thư viện của riêng bạn phù hợp nhất với nhu cầu của bạn. Tổng quan về các tính năng và chức năng:
- Thư viện JavaScript của Dịch vụ nhận dạng của Google triển khai:
- Luồng đồng ý dựa trên hộp thoại để giảm thiểu lượt chuyển hướng, cho phép người dùng vẫn ở trên trang web của bạn trong suốt quá trình uỷ quyền.
- Các tính năng bảo mật như Giả mạo yêu cầu trên nhiều trang web (CSRF).
- Các phương thức trợ giúp để yêu cầu từng phạm vi và xác nhận sự đồng ý của người dùng.
- Xử lý lỗi thân thiện với người dùng và các đường liên kết đến tài liệu để kỹ sư sử dụng trong quá trình phát triển và sau này là cho khách truy cập vào trang web của bạn.
- Khi triển khai mà không có thư viện Dịch vụ nhận dạng, bạn có trách nhiệm:
- Quản lý các yêu cầu và phản hồi bằng các điểm cuối OAuth 2.0 của Google, bao gồm cả lệnh chuyển hướng.
- Tối ưu hoá trải nghiệm người dùng.
- Triển khai các tính năng bảo mật để xác thực yêu cầu, phản hồi và ngăn chặn CSRF.
- Các phương thức để xác nhận rằng người dùng đã đồng ý cho mọi phạm vi được yêu cầu.
- Quản lý mã lỗi OAuth 2.0, tạo thông báo dễ đọc và các đường liên kết đến nội dung trợ giúp cho người dùng.
Tóm lại, Google cung cấp thư viện GIS để giúp bạn nhanh chóng và an toàn triển khai một ứng dụng OAuth 2.0 và tối ưu hoá trải nghiệm uỷ quyền của người dùng.
Chọn một quy trình uỷ quyền
Bạn sẽ cần chọn một trong hai quy trình uỷ quyền OAuth 2.0: ngầm định hoặc mã uỷ quyền – bất kể bạn quyết định sử dụng thư viện JavaScript Dịch vụ nhận dạng của Google hay tạo thư viện của riêng mình.
Cả hai quy trình đều tạo ra một mã truy cập có thể dùng để gọi các API của Google.
Những điểm khác biệt chính giữa hai quy trình này là:
- số lượng hành động của người dùng,
- ứng dụng của bạn có gọi các API của Google khi người dùng không có mặt hay không,
- nếu cần một nền tảng phụ trợ để lưu trữ một điểm cuối và lưu trữ mã làm mới cho từng người dùng đối với từng tài khoản người dùng, và
- mức độ bảo mật của người dùng cao hơn hoặc thấp hơn.
Khi so sánh các luồng và đánh giá các yêu cầu về bảo mật, bạn cần cân nhắc một yếu tố là mức độ bảo mật của người dùng sẽ thay đổi tuỳ thuộc vào phạm vi bạn chọn. Ví dụ: việc xem lời mời trên lịch ở chế độ chỉ đọc có thể được coi là ít rủi ro hơn so với việc sử dụng phạm vi đọc và ghi để chỉnh sửa tệp trên Drive.
So sánh quy trình OAuth 2.0
| Luồng cấp quyền trực tiếp | Quy trình sử dụng mã uỷ quyền | |
| Bắt buộc phải có sự đồng ý của người dùng | Đối với mọi yêu cầu về mã thông báo, kể cả việc thay thế mã thông báo đã hết hạn. | Chỉ dành cho yêu cầu mã thông báo đầu tiên. |
| Người dùng phải có mặt | Có | Không, có hỗ trợ sử dụng khi không có mạng. |
| Bảo mật cho người dùng | Ít nhất | Hầu hết đều có tính năng xác thực ứng dụng và tránh được các rủi ro khi xử lý mã thông báo trong trình duyệt. |
| Mã truy cập đã được cấp | Có | Có |
| Đã cấp mã làm mới | Không | Có |
| Cần có trình duyệt được hỗ trợ | Có | Có |
| Mã truy cập dùng để gọi các API của Google | chỉ từ một ứng dụng web đang chạy trong trình duyệt của người dùng. | từ một máy chủ chạy trên nền tảng phụ trợ hoặc từ một ứng dụng web chạy trong trình duyệt của người dùng. |
| Yêu cầu nền tảng phụ trợ | Không | Có, đối với việc lưu trữ và lưu trữ điểm cuối. |
| Cần có bộ nhớ bảo mật | Không | Có, đối với bộ nhớ mã làm mới. |
| Yêu cầu lưu trữ một điểm cuối mã uỷ quyền | Không | Có, để nhận mã uỷ quyền từ Google. |
| Hành vi hết hạn của mã truy cập | Bạn cần có một cử chỉ của người dùng (chẳng hạn như nhấn nút hoặc nhấp vào một đường liên kết) để yêu cầu và nhận mã truy cập mới, hợp lệ. | Sau yêu cầu ban đầu của người dùng, nền tảng của bạn sẽ trao đổi mã làm mới đã lưu trữ để lấy mã truy cập mới, hợp lệ cần thiết để gọi API của Google. |