Tôi quan tâm đến việc triển khai OpenID và tôi đã đọc về nó, nhưng vẫn còn một vài khía cạnh mà tôi hơi bối rối.Thực hiện OpenID với PHP
Tôi đã thấy nhiều biểu đồ luồng của tương tác và chi tiết từng bước, chẳng hạn như this one, nhưng tất cả đều bỏ qua chi tiết về những gì xảy ra khi đăng nhập thành công. Tất cả mọi thứ tôi đã đọc nói một cái gì đó dọc theo dòng "khi đăng nhập thành công, người dùng được chuyển hướng trở lại trang web." Vâng, làm cách nào để trang web của tôi biết rằng thông tin đăng nhập đã thành công? Cookie có được đặt không, tôi có nhận lại POST không?
Ví dụ, đây là các chi tiết từ liên kết tôi bao gồm
9. User POSTs response to OpenID Server.
10. User is redirected to either the success URL or the failure URL returned in (5) depending on the User response
//this is the step that it says tells me I've had a succes/failure upon login
5. Consumer inspects the HTML document header for <link/> tags with the attribute rel set to openid.server and, optionally, openid.delegate. The Consumer uses the values in these tags to construct a URL with mode checkid_setup for the Identity Server and redirects the User Agent. This checkid_setup URL encodes, among other things, a URL to return to in case of success and one to return to in the case of failure or cancellation of the request
Tôi không khá chắc chắn làm thế nào để giải thích đó. Điều gì đặc biệt cho tôi biết rằng đăng nhập đã thành công? Từ những gì tôi thu thập, có vẻ như một cái gì đó trong tiêu đề được thiết lập, nhưng làm cách nào để truy cập nó? Giả sử tôi tìm ra đăng nhập đã đăng nhập thành công, điều đó có nghĩa là tôi có thể tiếp tục và tiếp tục đặt cookie/phiên liên quan đến trang web của mình không?
Edit- tôi thấy LightOpenID và nó xuất hiện cho phù hợp với nhu cầu của tôi, nhưng tôi vẫn còn một chút không chắc chắn về điều gì đó
Tôi đã thử nghiệm nó trên localhost và có google đăng nhập để làm việc. Khi đăng nhập tôi nhận được một URL như
User https://www.google.com/accounts/o8/id?id=sdlkfjlkwliej9392010fjos has logged in.
Kiểm tra mã này, nó được tạo ra bởi những điều sau
echo 'User ' . ($openid->validate() ? $openid->identity . ' has ' : 'has not ') . 'logged in.';
Tôi giả định này có nghĩa là tôi chỉ đơn giản là kiểm tra $ openid-> validate() để đăng nhập ? Liệu $ openid-> nhận dạng có giống nhau mỗi lần đối với tài khoản google đã cho không? Tôi giả sử có, nếu không sẽ không có cách nào để theo dõi người dùng mỗi lần. Nếu người dùng đã đăng nhập, tôi có thể đặt cookie, phiên và bất kỳ nội dung thú vị nào khác mà tôi cho là cần thiết, đúng không?
Thông tin thêm ở đây: http://stackoverflow.com/questions/3995011/log-in-the-user-with-lightopenid – ethrbunny
câu trả lời trước có thể được hoàn thành với http://stackoverflow.com/questions/5463029/lightopenid-validate-fail-on-google-apps/15848917#15848917 –