2012-11-13 41 views
5

Tôi cần cung cấp vai trò (bao gồm vai trò Thành viên), thành viên và thư mục người dùng cho người dùng OpenID nhất định trước trước tiên họ đăng nhập vào trang web Plone của tôi. Đó là, tôi cần phải thêm lập trình người dùng OpenID vào trang web Plone của tôi. portal_registration.addMember không thể thêm người dùng OpenID. plone.openid có plugin PAS riêng không tạo đối tượng thành viên. Tôi phải làm gì để có thể sao chép được trong trình setuphandler? Cách thông thường để thực hiện việc này là đăng nhập bằng tay người dùng OpenID, sau đó thêm vai trò, thành viêndata và chia sẻ sau thông tin đăng nhập. Tuy nhiên, câu chuyện người dùng đó không thể sao chép theo chương trình.Cách lập trình Thêm người dùng OpenID vào trang web

Trả lời

0

Điều duy nhất quan trọng là id người dùng được tạo cho mỗi người dùng. Có thể chỉ cần tạo thành viên thông thường trước với id người dùng khớp với url nhận dạng id mở, đảm nhận vai trò và sau đó sử dụng openid (chỉ) làm phương thức xác thực thay thế cho những người dùng đó.

Cập nhật: Như Chris đã nhận xét dưới đây, không thể thêm người dùng có URL làm id của họ thông qua giao diện người dùng Plone, nhưng họ phải được tạo trực tiếp vào thư mục người dùng PAS thông qua ZMI (Zope Management Interface).

+0

Giả sử tôi có ServiceX với tài khoản người dùng được định cấu hình trước (đặc quyền dành riêng cho ứng dụng và quyền truy cập chế độ xem). Tên người dùng/openid_key/gì tôi nên yêu cầu người dùng gửi cho tôi? Sau đó, tôi liên kết tài khoản dịch vụ được định cấu hình trước với tài khoản OpenID đó. Giả sử người dùng sử dụng nhà cung cấp Google hoặc Yahoo OpenID? Nhà cung cấp OpenID có trả lại địa chỉ email để tôi có thể liên kết tài khoản được định cấu hình trước không? – Whome

+0

Tôi sợ rằng câu trả lời là không. Triển khai OpenID mặc định hiện tại trong Plone chỉ đơn giản chỉ định url nhận dạng OpenID là userid. Và url đó có thể không chứa địa chỉ email và khác nhau đối với mỗi nhà cung cấp. Để hỗ trợ điều đó, plone.openid cần được nâng cấp để hỗ trợ phần mở rộng OpenID Attribute Exchange. –

+0

Tôi đã thử tạo thành viên từ URL OpenID nhưng URL chứa các ký tự không hợp lệ trong userids. Như đã nói trong câu hỏi, portal_registration.addMember sẽ không lấy URL cho userid. Tôi đánh giá cao ai đó cuối cùng đã trả lời. Nhưng không tìm thấy câu trả lời trong khi tôi đang làm việc trên ứng dụng đòi hỏi điều này hai năm trước, tôi bị bỏ rơi bằng cách sử dụng plone.openid và bây giờ ở một công việc khác. Đó là tất cả các tranh luận như OpenID đã chết, các nhà cung cấp OpenID chúng tôi đã sử dụng sụp đổ, và plone.login sắp tới sẽ hỗ trợ OAuth. Tuy nhiên, làm thế nào nó sẽ gắn kết các xác thực OAuth với các đối tượng thành viên là một vấn đề khác. –

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