2013-03-02 10 views
9

Tôi có một ứng dụng web cho phép đăng ký và xác thực thông qua Facebook, GoogleWindows Live. Mỗi yêu cầu OAuth có phạm vi bắt buộc để truy xuất địa chỉ email được liên kết từ nhà cung cấp xác thực.Tài khoản duy nhất cho nhiều nhà cung cấp OAuth (Facebook, Google, Windows Live)?

Tình hình hiện tại là tài khoản được tạo dựa trên nhà cung cấp và số nhận dạng được cung cấp. Điều này có nghĩa là nếu người dùng có đăng nhập với nhiều nhà cung cấp, người dùng sẽ có nhiều tài khoản trên ứng dụng web.

Tôi muốn có tình hình lý tưởng của việc có một đơn acccount ngay cả khi sử dụng nhiều nhà cung cấp. Tôi đã suy nghĩ về việc sử dụng địa chỉ e-mail để xem tài khoản có tồn tại cho người dùng hay không. Nếu nó tồn tại, sử dụng tài khoản dựa trên địa chỉ e-mail.

An toàn/đáng tin cậy như thế nào? Tất cả các nhà cung cấp OAuth có đề cập đến địa chỉ email hợp lệ không? Cách tốt hơn?

EDIT: Chạy thử nghiệm và đưa ra điều này. Vẫn đang tìm kiếm thêm lời khuyên :)

FaceBook: Cannot authenticate with unvalidated e-mail. Additional e-mail will not appear until validated. 
Google: Provides `verified_email`. Additional e-mail will not appear until validated. 
Windows Live: Cannot authenticate with unvalidated e-mail. Additional e-mail will not appear until validated. 

Trả lời

4

Câu hỏi thú vị. Bạn có thể thử sử dụng e-mail để kiểm tra xem người dùng có tồn tại hay không, nhưng vấn đề là, người dùng có thể sử dụng các địa chỉ e-mail khác nhau cho các nhà cung cấp khác nhau.

Đề xuất của tôi sẽ yêu cầu người dùng (khi họ đăng nhập vào ứng dụng của bạn bằng một trong các phương pháp) để đính kèm các nhà cung cấp khác vào tài khoản này, để họ có thể sử dụng chúng để đăng nhập vào ứng dụng của bạn.

Nó không hoàn toàn giải quyết vấn đề của bạn (tôi không chắc chắn nếu giải pháp tồn tại), nhưng người dùng sẽ có quyền kiểm soát nhiều hơn theo cách đó và bạn sẽ giảm số lượng tài khoản cho mỗi người dùng.