2009-03-13 8 views
5

Est-il possible d'utiliser une combinaison de systèmes d'authentification dans une application Web?Combinaison d'authentification OpenID & Facebook

Je veux utiliser OpenId, mais je pense que mes clients potentiels sont plus susceptibles d'avoir un identifiant Facebook.

Par conséquent, je me demande s'il est possible d'offrir les deux types d'authentification?

+0

Bien sûr, il est possible si vous le construisez à partir de zéro - demandez-vous si c'est possible dans un cadre particulier? –

Répondre

2

Pour presque toutes les langues, il devrait y avoir un cadre! Vous pouvez enchaîner/encapsuler les fonctionnalités de ces frameworks pour répondre à vos besoins!

En pseudocode:

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

Si vous utilisez java, Acegi/Spring Security pourrait être la meilleure façon (la sécurité qui n'inversif - via AOP). Là, vous pouvez utiliser openID et définir un second validateur pour votre propre userdb!

0

Quelque chose comme ceci dans votre logique de traitement de formulaire:

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

Vous voulez RPX. Il résout tout le gâchis d'OpenID loin de vous et de vos visiteurs. Il leur permet également de s'authentifier avec Facebook ou MySpace en plus des fournisseurs OpenID.

Il fournit une interface de connexion très similaire à ce que vous voyez ici sur Stack Overflow.

+0

C'est assez cool - je pourrais l'essayer dans mon prochain projet. Merci! –

+0

propre! ressemble à un gagnant possible ... –

+3

Et il vous rend également complètement dépendant d'une seule source externe pour toute votre authentification de l'utilisateur. S'il vous plaît lire les arguments à http://blog.nerdbank.net/2009/01/why-using-rpxnow-is-bad-idea.html avant de décider de l'utiliser. –