2016-03-11 13 views
5

Đối với Tài khoản Google là NOT tài khoản tên miền được lưu trữ, số nhận dạng người dùng sub được trả lại bởi https://developers.google.com/identity/sign-in/android/backend-auth luôn khớp với phản hồi từ UserService.getCurrentUser().getUserId() như mong đợi.Tại sao Đăng nhập bằng Google cho Android trả lại mã định danh người dùng "phụ" khác với UserService.getCurrentUser() cho tài khoản tên miền được lưu trữ?

Tuy nhiên đối với tài khoản tên miền được lưu trữ, số nhận dạng sub không khớp với phản hồi từ UserService.getCurrentUser().getUserId(). Làm cách nào chúng tôi có thể có số nhận dạng người dùng phổ biến cho tài khoản tên miền được lưu trữ, bất kể người dùng đăng nhập bằng Đăng nhập bằng Google cho Mã thông báo Android hay thông qua đăng nhập trình duyệt UserService phía máy chủ?

+0

Tôi không thể nhận xét về lý do chúng khác nhau, tuy nhiên, một dự phòng là sử dụng địa chỉ email làm Id chung cho tài khoản miền được lưu trữ dưới dạng idToken.getPayload(). GetEmail() phải luôn khớp với UserService.getCurrentUser(). GetEmail(). Tuy nhiên, – Adam

+0

Địa chỉ email cho tài khoản Google có thể thay đổi, vì vậy đây không phải là phương pháp xác thực người dùng đáng tin cậy duy nhất. –

Trả lời

0

Vì lý do: Tôi chắc chắn rằng sự khác biệt là một tạo phẩm thực tế là Google App Engine sử dụng trực tiếp hệ thống xác thực/tài khoản người dùng của Google, trong khi Identity Kit là một dự án riêng biệt tích hợp với nhiều nhà cung cấp OAuth. Nói cách khác, chúng là những dự án riêng biệt mà tại một thời điểm nào đó chỉ được tích hợp lỏng lẻo.

Để giải quyết vấn đề, đề xuất của tôi là không sử dụng API xác thực gốc của Google trên App Engine và thay vào đó chỉ sử dụng Identity Toolkit Web, tất nhiên sẽ sử dụng cùng một dữ liệu và lược đồ như đối tượng nhận dạng Android/iOS. Chỉ cần sử dụng Bộ công cụ nhận dạng giống như bất kỳ ứng dụng web nào khác là khá đơn giản và nó di động bên ngoài GAE.

Nếu Bộ công cụ danh tính nằm xung quanh khi App Engine được tạo, có thể chúng sẽ được tích hợp tự động và mọi thứ sẽ hoạt động. Nhưng tôi thấy bạn không thể trộn lẫn và kết hợp chúng; bạn chọn một và gắn bó với nó.

Các vấn đề liên quan