Hướng dẫn này giúp bạn chọn 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. Qua đó, bạn có thể 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, chúng tôi giả định rằng bạn đã nắm rõ 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 tính năng uỷ quyền người dùng.
Thư viện GIS chạy trong các trình duyệt được hỗ trợ này trên thiết bị của người dùng. API này không nhằm sử dụng với các khung JavaScript phía máy chủ như Node.js, mà thay vào đó, hãy sử 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. Bài viết này không xem xét việc 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ười dùng đăng ký và đăng nhập.
Quyết định xem thư viện GIS có phù hợp với bạn không
Bạn phải chọn xem bạn nên sử dụng thư viện của Google hay tự tạo nội dung phù hợp nhất với nhu cầu của mình. Tổng quan về các tính năng và chức năng:
- Thư viện JavaScript của Dịch vụ danh tính của Google triển khai:
- Quy trình lấy sự đồng ý dựa trên cửa sổ bật lên giúp giảm thiểu các lệnh chuyển hướng, từ đó cho phép người dùng ở lại trang web của bạn trong suốt quá trình cho phép.
- Các tính năng bảo mật như Giả mạo yêu cầu trên nhiều trang web (CRSF).
- 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.
- Các đường liên kết đến tài liệu và khả năng xử lý lỗi mà con người có thể sử dụng trong quá trình phát triển và sau này cho khách truy cập trang web của bạn sử dụng.
- Khi triển khai mà không có thư viện Dịch vụ danh tính, bạn chịu trách nhiệm về:
- Quản lý các yêu cầu và phản hồi bằng điểm cuối OAuth 2.0 của Google, bao gồm cả các lượt 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 cá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 người dùng đã đồng ý cho bất kỳ phạm vi nào được yêu cầu.
- Quản lý mã lỗi OAuth 2.0, tạo thông báo mà con người có thể đọc được và đường liên kết tới phần trợ giúp của người dùng.
Tóm lại, Google cung cấp thư viện GIS để giúp bạn triển khai ứng dụng OAuth 2.0 một cách nhanh chóng và an toàn, đồng thời tối ưu hoá trải nghiệm uỷ quyền của người dùng.
Chọn 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 của Dịch vụ Google Identity hay tạo thư viện riêng.
Cả hai quy trình đều tạo ra một mã truy cập. Bạn có thể dùng mã này để gọi các API của Google.
Đ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,
- việc ứng dụng của bạn có gọi API Google khi không có người dùng hay không,
- liệu cần có một nền tảng phụ trợ để lưu trữ điểm cuối và lưu trữ mã làm mới cho mỗi người dùng đối với tài khoản người dùng cá nhân, và
- mức độ bảo mật 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, một yếu tố cần cân nhắc là mức độ bảo mật người dùng sẽ thay đổi tuỳ theo phạm vi mà bạn chọn. Ví dụ: việc xem lời mời trên lịch ở chế độ chỉ đọc có thể ít rủi ro hơn so với việc sử dụng phạm vi đọc/ghi để chỉnh sửa tệp trong Drive.
So sánh quy trình OAuth 2.0
Luồng ngầm ẩn | Quy trình mã uỷ quyền | |
Cần có sự đồng ý của người dùng | Đối với mọi yêu cầu về mã thông báo, bao gồm 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, hỗ trợ sử dụng ngoại tuyến. |
Bảo mật người dùng | Ít gặp nhất | Hầu hết, chế độ này có xác thực ứng dụng khách và tránh rủi ro xử lý mã thông báo trong trình duyệt. |
Đã cấp mã truy cập | Có | Có |
Đã phát hành 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ừ ứng dụng web 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. |
Cần có nền tảng phụ trợ | Không | Có, để lưu trữ và lưu trữ thiết bị đầu cuối. |
Cần bộ nhớ an toàn | Không | Có, để lưu trữ mã thông báo làm mới. |
Yêu cầu lưu trữ điểm cuối của 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 | Người dùng cần thực hiện một cử chỉ như nhấn nút hoặc nhấp vào đườ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ột mã truy cập mới, hợp lệ cần thiết để gọi các API của Google. |