首先,如OAuth身份验证中明确指出的
OAuth 2.0不是身份验证协议。
用户访问应用程序时的身份验证告诉应用程序当前用户是谁以及他们是否存在。完整的身份验证协议还可能会告诉您有关此用户的许多属性,例如唯一标识符,电子邮件地址,以及当应用程序显示“
Good Morning”时如何调用它们。但是,OAuth不会告诉应用程序。
OAuth绝对不会对用户说任何话,也不会说用户如何证明他们的存在或者即使他们仍然在场。
就OAuth客户端而言,它要求一个令牌,获得一个令牌,并最终使用该令牌访问某些API。它对谁授权该应用程序,甚至根本没有用户一无所知。
有一个使用OAuth进行用户身份验证的标准:OpenID Connect,与OAuth2兼容。
OpenID Connect ID令牌是签名的JSON Web令牌(JWT),它与常规OAuth访问令牌一起提供给客户端应用程序。
ID令牌包含一组有关身份验证会话的声明,包括用户的标识符(子),发布令牌的身份提供者的标识符(iss)以及为其创建令牌的客户端的标识符(音频)。
在Go中,您可以查看 coreos/dex
带有可插拔连接器的OpenID
Connect身份(OIDC)和OAuth 2.0提供程序。



