是否可以在 Web 应用程序中使用身份验证系统的组合?
我想使用 OpenId,但我认为我的潜在客户实际上更有可能拥有 Facebook ID。
因此我想知道是否可以提供两种类型的身份验证?
是否可以在 Web 应用程序中使用身份验证系统的组合?
我想使用 OpenId,但我认为我的潜在客户实际上更有可能拥有 Facebook ID。
因此我想知道是否可以提供两种类型的身份验证?
Facebook 已加入 OpenID 基金会,因此他们可能很快就会实施 OpenID(在这种情况下,最好只使用 OpenID)。
几乎每种语言都应该有一个框架!您可以链接/包装该框架的功能来满足您的需求!
在伪代码中:
if(IsUserValidViaOpenId() || IsUserValidByOwnAuthDB()) ... user auth successful
如果您使用 java,Acegi/Spring Security 可能是最好的方法(不可逆的安全性 - 通过 AOP)。在那里,您可以使用 openID 并为您自己的 userdb 定义自己的第二个验证器!
你想要RPX。它从您和您的访问者那里抽象出 OpenID 的整个混乱。除了 OpenID 提供商之外,它还允许他们通过 Facebook 或 MySpace 进行身份验证。
它提供的登录界面与您在 Stack Overflow 上看到的非常相似。
在您的表单处理逻辑中是这样的:
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)