Ví dụ:
- Chúng tôi đang điều hành hai trang web cộng đồng trên hai miền (gọi cho họ
example.com
vàexample.net
). - Chúng tôi muốn có thể mở rộng điều đó sang nhiều tên miền hơn sau này.
- Chúng tôi muốn cho phép nhiều loại đăng nhập (OpenID, Facebook, Twitter, tên người dùng / mật khẩu tiêu chuẩn).
- Chúng tôi muốn ai đó đăng nhập vào một trang web sẽ tự động đăng nhập vào (các) trang khác.
Nói cách khác, nó hơi giống với mạng StackExchange.
Trong trường hợp này, kế hoạch này sẽ làm việc?
- Thiết lập
example.com
vàexample.net
(và mọi bổ sung sau này) dưới dạng các bên dựa trên OpenID, chỉ chấp nhận đăng nhập OpenIDid.example.org
. - Thiết lập
example.com
vàexample.net
thực hiện yêu cầu trả lời OpenID ngay khi bạn truy cập chúng lần đầu tiên, để nếu bạn đăng nhậpid.example.org
ngay lập tức và tự động đăng nhập vào trang web bạn đang truy cập. Họ nên đặt cookie nếu bạn chưa đăng nhập, để lưu chúng làm điều này trên mỗi yêu cầu trang. - Thiết lập
id.example.org
như một nhà cung cấp và người tiêu dùng OpenID. Nó cũng sẽ tiêu thụ Facebook và các nhà cung cấp nhận dạng khác và cho phép truy cập tên người dùng / mật khẩu tiêu chuẩn. (Nhiều phương thức đăng nhập có thể được đính kèm vào một tài khoản.) - Khi đăng xuất, chỉ cần thay đổi mã thông báo xác thực trong cơ sở dữ liệu. Người dùng vẫn sẽ có cookie, nhưng chúng sẽ vô nghĩa. Do đó, người dùng có thể đăng xuất khỏi tất cả các trang web cùng một lúc. Nhiều mã thông báo xác thực có thể được lưu trữ đối với một người dùng cùng một lúc (và phải khác nhau cho mỗi trang web), để người dùng có thể đăng xuất trong một trình duyệt nhưng vẫn được đăng nhập ở một trình duyệt khác. Đăng xuất luôn luôn đăng xuất cho tất cả các trang web.
Vấn đề duy nhất tôi có thể thấy ở trên là:
- Có người ghé thăm
example.com
. Một cookie "không đăng nhập" được đặt. - Zie sau đó đi vào
example.net
. Như trên. - Zie sau đó đăng nhập và tiếp tục duyệt
example.net
. - Zie sau đó quay trở lại
example.com
và, vì cookie "không đăng nhập", không được kiểm traid.example.org
và do đó không được đăng nhập. - Tuy nhiên, ngay sau khi zie nhấp vào nút "đăng nhập", zie đã đăng nhập.
Tôi không nghĩ rằng đây là một vấn đề lớn.
Nhìn chung, tôi nghĩ rằng đó là một hệ thống khá tốt. Tôi chỉ muốn xem nó được xem xét. Có bất kỳ vấn đề nào tôi chưa lường trước? Nó sẽ là lỗi hoặc chậm? StackExchange sử dụng một phương pháp rất khác nhau. Tôi cho rằng họ có một lý do tốt cho điều đó?