2009-03-13 11 views
5

Có thể sử dụng kết hợp các hệ thống xác thực trong ứng dụng web không?Kết hợp xác thực OpenID & Facebook

Tôi muốn sử dụng OpenId, tuy nhiên tôi nghĩ khách hàng tiềm năng của tôi thực sự có nhiều khả năng có ID Facebook hơn.

Vì vậy, tôi tự hỏi liệu có thể cung cấp cả hai loại xác thực không?

+0

Tất nhiên có thể nếu bạn xây dựng nó từ đầu - bạn có hỏi liệu nó có thể trong một khuôn khổ cụ thể không? –

Trả lời

2

Đối với hầu hết mọi ngôn ngữ, cần có Khung! Bạn có thể chuỗi/bọc chức năng của các khuôn khổ đó để đáp ứng nhu cầu của bạn!

Trong giả:

if(IsUserValidViaOpenId() || IsUserValidByOwnAuthDB()) ... user auth successful 

Nếu bạn sử dụng java, Acegi/Xuân An có thể là cách tốt nhất (an ninh mà không được inversive - qua AOP). Ở đó bạn có thể sử dụng openID và xác định trình xác nhận thứ hai của riêng mình cho userdb của yor!

0

Something như thế này trong logic hình thức xử lý của bạn:

def authenticate(form_info): 
    url = form_info['url'] 
    if (is_facebook_url(url)): 
     return perform_facebook_authentication(form_info) 
    else: 
     return perform_open_id_authentication(form_info) 
2

Bạn muốn RPX. Nó tóm tắt toàn bộ mớ hỗn độn của OpenID từ cả bạn và khách truy cập của bạn. Nó cũng cho phép họ xác thực với Facebook hoặc MySpace ngoài các nhà cung cấp OpenID.

Nó cung cấp giao diện đăng nhập rất giống với giao diện bạn thấy ngay tại đây trên Stack Overflow.

+0

Điều đó khá thú vị - tôi có thể thử nó trong dự án tiếp theo của mình. Cảm ơn! –

+0

gọn gàng! trông giống như một người chiến thắng có thể ... –

+3

Và nó cũng làm cho bạn hoàn toàn phụ thuộc vào một nguồn bên ngoài duy nhất cho tất cả xác thực người dùng của bạn. Vui lòng đọc các đối số tại http://blog.nerdbank.net/2009/01/why-using-rpxnow-is-bad-idea.html trước khi quyết định có nên sử dụng nó hay không. –