它们用于不同的目标.
OpenID用于对您网站上的SomeUser进行身份验证,并向其他网站询问用户身份的证明.
OAuth用于授予SomeOtherParty(例如其他站点或应用程序)在您的站点上代表SomeUser执行某些操作的权限(这意味着SomeUser已经在您的站点上以某种方式进行了身份验证).
对于作者的要求,还有一些评论:
您无法选择"OAuth对用户进行身份验证",因为OAuth不是用户身份验证协议(尽管名称中包含"auth").
使用OpenID,您几乎可以使用任何 OpenID提供程序对用户进行身份验证,而无需对代码进行任何修改.
如果您选择使用Facebook OAuth对用户进行身份验证,则实际上并未对用户进行身份验证.您要求用户让您的应用程序访问Facebook上的用户个人资料.您正在访问Facebook服务以获取用户信息.这意味着,如果你想使用其他的OAuth提供的服务进行身份验证的用户,你将永远是能够做到这一点,而无需编写新的"身份验证"代码(除情况下,当新的供应商支持的API相同的Facebook).