我注意到所有大型网站都在使用Openid
而不是Oauth
。
我为oauth
和Google
实施了Facebook
。
我的要求:
我应该选择Oauth
或Openid
?
何时关注oauth
?
答案 0 :(得分:7)
它们用于不同的目标。
OpenID用于验证您网站上的 SomeUser ,并向其他网站询问用户身份的证明。
OAuth用于授予 SomeOtherParty (例如其他网站或应用程序)代表您网站上 SomeUser 做某事的权限(这意味着 SomeUser 已经以某种方式在您的网站上进行了身份验证。)
对于作者的要求,还有一些评论:
您无法选择“OAuth对用户进行身份验证”,因为OAuth不是用户身份验证协议(尽管名称中包含“auth”)。
使用OpenID,您可以使用虚拟任何 OpenID提供程序对用户进行身份验证,而无需对代码进行任何修改。
如果您选择使用Facebook OAuth 对用户进行身份验证,则您实际上并未对用户进行身份验证。您要求用户让您的应用程序访问Facebook上的用户个人资料。您正在访问Facebook服务以获取用户信息。这意味着,如果您要使用其他OAuth提供程序服务来验证用户,那么您将从不能够在不编写新的“身份验证”代码的情况下执行此操作(除了新提供商支持与facebook相同的API的情况。)