2009-09-06 29 views
13

Trên trang web tôi đã triển khai đăng nhập bằng OpenID (dựa trên StackOverflow).OpenID. Làm cách nào để bạn đăng xuất

Nhưng có vẻ như tôi không thể đăng xuất được.
Trên máy chủ của tôi, tôi có thể đăng xuất nhưng khi người dùng cố gắng đăng nhập lại (đặc biệt là với google) việc xác thực đi qua mà không yêu cầu người dùng nhập tên và mật khẩu.

Làm thế nào tôi có thể chỉ ra cho Nhà cung cấp OpenID rằng người dùng không còn đăng nhập vào trang web?

+0

Điều này tùy thuộc vào nhà cung cấp OpenID. Nếu bạn đã đăng xuất khỏi Google, tôi chắc chắn bạn sẽ được nhắc lại. – derobert

+6

Đối với bất cứ ai gắn cờ điều này là thuộc về SuperUser, bạn sai - đó là khá rõ ràng một câu hỏi lập trình về việc triển khai OpenID trong một webapp. – Amber

+4

@Dav: Xin lỗi, tôi đã đọc nó quá nhanh, nhưng tiếc là không có cách nào để hoàn tác một cuộc bỏ phiếu gần. Rất may, nó không quan trọng miễn là bốn người khác không mắc phải sai lầm tương tự. – derobert

Trả lời

14

OpenID xác thực người dùng vào trang web của bạn, khi đó bắt đầu một phiên trên trang web của bạn. Bạn hủy hoặc làm mất hiệu lực phiên của trang web riêng lẻ từ phiên của người dùng với nhà cung cấp OpenID của họ.

Lượt truy cập của người dùng joewidgets.com> Nhật ký người dùng bằng OpenID (với phiên nhà cung cấp mới hoặc hiện tại)> ... Nhấp chuột đăng xuất của người dùng> joewidgets.com hủy/làm mất hiệu lực phiên.

Nếu người dùng có nhà cung cấp OpenID của họ, hãy giữ họ đăng nhập, và hệ thống của bạn tự động kiểm tra, sau đó nó sẽ tạo phiên địa phương mới. (Un) may mắn thay, bạn không/không thể lo lắng về những gì người dùng làm hoặc không làm tại nhà cung cấp của họ, là nhà cung cấp của OpenID.

Có một đối số tại Social Lipstick gọi cho "Đăng xuất một lần", nhưng OpenID hiện không cung cấp chức năng này.

4

Thông thường, nhà cung cấp OpenID đã đăng nhập vào tài khoản Google của họ và chọn hộp để "nhớ" ủy quyền OpenID cho trang web cụ thể của bạn, sau đó nhà cung cấp sẽ đăng nhập rõ ràng và chuyển hướng chúng trở lại mà không hiển thị lời nhắc đăng nhập.

6

Đây được gọi là Đăng xuất một lần hoặc Đăng xuất một lần, mà OpenID không hỗ trợ. Theo tôi, SSO không đăng xuất là một lỗ hổng bảo mật lớn. Đăng xuất một trang web không có nghĩa là nhiều người khác chỉ có thể tham gia bằng một vài cú nhấp chuột.

Hiện tại, chúng tôi phải nhớ nhà cung cấp. Nếu đó là người mà chúng tôi biết, chúng tôi sẽ kích hoạt quy trình đăng xuất cho họ. Đối với Google, URL là,

https://www.google.com/accounts/Logout

Dòng logout là xấu xí nhưng nó không được công việc.

+3

bây giờ điều đó chỉ có ý nghĩa! Lý do tôi thích OpenID là tôi kiểm soát, không phải là trang web tôi đang ở. Đăng xuất khỏi gmail của tôi và tôi sẽ không bao giờ truy cập trang web của bạn nữa. – JasonWoof

+1

Bạn nên yêu cầu đăng xuất thay vì chỉ đăng xuất. Điều đó có thể không? – Alfred

+0

Wow! Tôi hoàn toàn không có ý tưởng rằng google cho phép đăng xuất với một yêu cầu GET đồng bằng. Đây thực tế là một cuộc tấn công DoS đang chờ xảy ra (ví dụ: iframe có địa chỉ đó sẽ đăng xuất trình đọc trang web từ google!) –

0

"Đó là một tính năng không phải là một lỗi"

Nhà cung cấp id có thể chọn để giữ cho người dùng ủy quyền cho nhà cung cấp thông qua các tập tin cookie, và hơn nữa có thể chọn không tái nhắc người dùng về việc chia sẻ các thông tin tương tự mà được chia sẻ trước đó (với dấu nhắc). Vì vậy, khi người dùng trên Trang web A, được yêu cầu được ủy quyền thông qua Trang web B và được chuyển hướng, Trang web B trước tiên đã yêu cầu người dùng xác thực anh ta hoặc cô ấy. Sau đó, Trang B hỏi liệu có nên chia sẻ bất kỳ thông tin nào (và đôi khi thông tin nào đó) với Trang web A. Tại thời điểm này, nó cũng sẽ yêu cầu thường xuyên nếu bạn muốn tự động chia sẻ cùng một thông tin này trong tương lai. Một số nhà cung cấp sẽ giả định có, một số không, một số sẽ không hỏi. Trang web B sau đó chuyển hướng đến trang web A và chia sẻ thông tin, bạn hiện đã đăng nhập.

Nếu trang web A chuyển hướng thứ hai đến trang web B để yêu cầu đăng nhập, Site B có thể 1) Đã có cookie xác thực người dùng hiện tại của trang web B. 2) Đã có hồ sơ về thông tin nào có thể chấp nhận được để chia sẻ với Trang web B. 3) Tự động chia sẻ thông tin này thông qua chuyển hướng mà không cần tạm dừng để nhắc người dùng.

Đây là một tính năng tập trung vào sự tiện lợi.

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