Làm cách nào để thiết kế lược đồ cho một trang web chấp nhận đăng nhập từ nhiều trang web (ví dụ: kết nối facebook, google, flickr, v.v.)? [đóng cửa]


7

Tôi đang xây dựng một trang web ( "Trang web" ) và tôi đang xem xét cách thiết kế lược đồ DB cho nó.

Tôi có một vài kịch bản sẽ ảnh hưởng đến kết quả:

  • Người dùng có thể chọn đăng ký tài khoản gốc trên trang web , điều này sẽ khiến anh ta sử dụng tài khoản đó để đăng nhập vào tài khoản của mình trên trang web trong tương lai.
  • Người dùng có thể chọn đăng nhập thông qua một trang web khác ( "trang bên ngoài" ) (chẳng hạn như kết nối facebook, google, 5.0, v.v.), điều này sẽ khiến anh ta sử dụng thông tin đó để đăng nhập vào tài khoản của mình trên trang web trong tương lai.
  • Không thực sự quan trọng phương pháp đăng nhập nào mà anh ấy đã chọn (tài khoản gốc hoặc tài khoản trang bên ngoài), người dùng sẽ có thể xác thực tài khoản của mình trên trang web bằng các trang web bên ngoài (như facebook, twitter, instagram, v.v.) để sử dụng dữ liệu anh ấy có trên trang web bên ngoài (chẳng hạn như tweet của anh ấy từ twitter, ảnh của anh ấy từ flickr, v.v.), trong trang web .

Tôi nên thiết kế lược đồ của DB như thế nào?

Trong hai kịch bản đầu tiên, tôi nghĩ rằng có một bảng được gọi là Usersidvà một typetrường. Các loại tài liệu tham khảo một bảng khác nhau, chẳng hạn như FacebookUsershay GoogleUsers, mỗi người đều có một user_idlĩnh vực - trong đó có một mối quan hệ xa lạ đối với Users.idlĩnh vực - và các lĩnh vực khác như first_name, profile_picture, vv ..

Tuy nhiên:

  1. Tôi không chắc nó thông minh đến mức nào khi sử dụng phương pháp này.
  2. Tôi không biết làm thế nào để thực hiện kịch bản thứ ba theo cách tiếp cận như vậy.

Tôi đang đóng cái này ngoài chủ đề, bởi vì đây là câu hỏi logic về kiến ​​trúc / thiết kế / kinh doanh trang web hơn là một câu hỏi thiết kế cơ sở dữ liệu.
CoderHawk

Câu trả lời:


1

Có một câu hỏi tương tự trong stackoverflow

Và giải pháp là

Bạn cần thêm 2 trường trong bảng của mình, một là nguồn đăng nhập (twitter, openID, facebook) và một là id người dùng nguồn (id được cung cấp từ twitter, openID, facebook) Tôi khuyên bạn nên tạo chuỗi này như một số đăng nhập nguồn có chữ cái trong ID người dùng của họ và không chỉ là số. hơn

  • Tôi không chắc nó thông minh đến mức nào khi sử dụng phương pháp này.

Cách tiếp cận này là tốt, thực sự các trang web chọn nó. xem trang đăng nhập SO https://stackoverflow.com/users/login

  • Tôi không biết làm thế nào để thực hiện kịch bản thứ ba theo cách tiếp cận như vậy.

Tôi nghĩ bạn có thể thực hiện điều này, chỉ khi các trang web của bên thrid cung cấp quyền truy cập. Câu hỏi này không có chủ đề ở đây, bạn có thể hỏi câu hỏi này trong stackoverflow

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.