2009-03-13 21 views
5

Czy w aplikacji internetowej można korzystać z kombinacji systemów uwierzytelniania?Połączenie uwierzytelniające OpenID i Facebook

Chcę używać OpenId, jednak moim zdaniem potencjalni klienci mają większe prawdopodobieństwo posiadania identyfikatora Facebook.

Dlatego zastanawiam się, czy możliwe jest zaoferowanie obu rodzajów uwierzytelniania?

+0

Oczywiście możliwe jest, jeśli zbudujesz go od zera - czy pytasz, czy jest to możliwe w konkretnym środowisku? –

Odpowiedz

2

Dla niemal każdego języka powinny istnieć Framework! Możesz łączyć/owijać funkcjonalność tych frameworków, aby sprostać Twoim potrzebom!

W Pseudokod:

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

Jeśli używasz Java, Acegi/Wiosna zabezpieczeń może być najlepszym sposobem (bezpieczeństwo, które nie jest inversive - poprzez AOP). Tam możesz użyć openID i zdefiniować własny drugi walidator dla twojej własnej userdb!

0

Coś takiego w logice przetwarzania forma:

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

Chcesz RPX. To usuwa cały bałagan OpenID z dala od ciebie i twoich gości. Umożliwia także uwierzytelnianie za pomocą Facebooka lub MySpace oprócz dostawców OpenID.

Udostępnia interfejs logowania bardzo podobny do tego, co można zobaczyć tutaj, w przepełnieniu stosu.

+0

To całkiem fajne - może wypróbuję to w moim następnym projekcie. Dzięki! –

+0

schludny! wygląda jak potencjalny zwycięzca ... –

+3

To także całkowicie uzależnia od jednego zewnętrznego źródła dla wszystkich twoich uwierzytelnień użytkownika. Proszę przeczytać argumenty na http://blog.nerdbank.net/2009/01/why-using-rpxnow-is-bad-idea.html przed podjęciem decyzji, czy go użyć. –