2012-06-22 15 views
6

Tôi và đồng nghiệp của tôi đang phát triển một ứng dụng (cả ứng dụng web và ứng dụng di động (iPhone & android)), bao gồm quy trình đăng nhập. Hiện tại, chúng tôi có cơ chế đăng nhập riêng của chúng tôi (nơi người dùng đã ký một tài khoản trên ứng dụng của chúng tôi và đã lưu trữ thông tin của họ trong Cơ sở dữ liệu của chúng tôi). Chúng tôi đang xem xét tích hợp oAuth và cho phép người dùng đăng nhập bằng Facebook, Twitter, LinkedIn và Google.Tiêu chuẩn với oAuth để ghi nhớ người dùng là gì?

Bây giờ, khi người dùng đăng nhập bằng bất kỳ thông tin nào trong số đó, vì tôi hiểu quy trình đăng nhập diễn ra bên ngoài ứng dụng của chúng tôi và về cơ bản chỉ được phép truy cập tài nguyên của họ.

Câu hỏi của tôi là: thông qua oAuth, làm thế nào để chúng ta nhớ người dùng? tức là người dùng đăng nhập có quyền đọc/ghi và có tùy chọn. Làm thế nào để chúng ta nhớ những người khi họ không thực sự đăng ký thông qua ứng dụng của chúng tôi .. Chúng tôi có thể lưu trữ địa chỉ email của họ trong bảng "Người dùng" của chúng tôi không ??

Thực tiễn tốt nhất trong trường hợp như vậy là gì?

Cảm ơn bạn đã cung cấp bất kỳ thông tin nào.

Trả lời

11

Có cơ sở dữ liệu xác thực được xây dựng cho một vài trang web hỗ trợ OAuth khác nhau, tôi có thể nói rằng tôi đã học được một vài điều mà bạn nên ghi nhớ.

  1. Bạn nên có bảng người dùng cho trang web của bạn hoàn toàn độc lập với nhà cung cấp OAuth mà họ đã sử dụng để đăng ký/đăng nhập. Điều này cho phép người dùng trang web của bạn kết hợp nhiều tài khoản với nhau theo nhận dạng chính của họ trên trang web của bạn. (Ví dụ: liên kết cả Facebook và Twitter với bạn.)
  2. Khi bạn cho phép người dùng đăng ký, bạn sẽ nhận được địa chỉ email từ họ. Cho dù bạn hỏi Facebook cho nó, hoặc nếu bạn phải hỏi trực tiếp. Điều này cho phép bạn "nâng cấp" người dùng sau này tùy thuộc hoàn toàn vào OAuth của bên thứ ba để đặt mật khẩu của riêng họ trên trang web của bạn. (Bạn chỉ cần gửi cho họ liên kết đến trang đặt lại mật khẩu của bạn để họ bắt đầu tạo mật khẩu đầu tiên.)
  3. Bạn không muốn sử dụng địa chỉ email làm khóa chính của mình. Tôi không chắc đó có phải là điều bạn đang mô tả hay không, nhưng bạn thực sự muốn họ có một ID người dùng cục bộ mà bạn sử dụng để duy trì phiên của họ, v.v. Sau đó, bạn kết hợp ID Facebook hoặc ID Twitter của họ với địa phương đó ID và sử dụng sự tương ứng giữa các số nhận dạng đó để khớp với những người dùng trang web của bạn để xem xét đăng nhập.
+2

cảm ơn phản hồi !! Một số câu hỏi: - Về điểm số 1, là dành cho trường hợp người dùng đăng nhập bằng tài khoản OAuth khác (Facebook, Twitter, ...), nhưng họ vẫn được liên kết và được coi là MỘT tài khoản thực? - Về điểm số 2, ý bạn là nâng cấp? Bạn có thể vui lòng làm rõ trường hợp sử dụng này không. - Về điểm số 3, là "ID người dùng cục bộ" được tạo bởi hệ thống/cơ sở dữ liệu hay nó được người dùng cuối chỉ định? – mustang888

+0

Ngoài ra, cách bạn xử lý trường hợp sử dụng sau: Người dùng X đăng nhập thông qua Facebook. Tôi lưu trữ ID Facebook của anh ấy và liên kết nó với một ID người dùng cục bộ. Lần tới, người dùng X đăng nhập thông qua Twitter. Làm cách nào để xác định rằng đó là cùng một người (đã đăng nhập trước đó qua Facebook) để tôi có thể tìm nạp tùy chọn người dùng của anh ấy .. dựa trên địa chỉ email (có thể là thông thường giữa tài khoản Facebook và Twitter của anh ấy hoặc có thể không được) ?? Cảm ơn đã giúp đỡ! – mustang888

+0

Làm thế nào điều này sẽ làm việc với Twitter vì họ không cung cấp email? Làm thế nào là có bất kỳ cách nào để biết liệu người dùng twitter là giống như người dùng facebook mà không có một bản sắc độc đáo như email? – CMCDragonkai

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