我正在运行一个电子商务网站,并希望使网站更容易访问,因此我正在考虑使用OAuth,以便他们可以使用他们的一些社交媒体配置文件登录。我还通过电子邮件和其他方法向我的客户发送了很多营销活动,所以当用户注册时,我有一些信息,如他们的电子邮件和他们职业的一些细节(与产品相关,别担心,我不是多管闲事!).
如果用户使用OAuth登录,那么他们将不会向我提供一些基本信息,例如他们的电子邮件,因为他们不必使用注册表单。
因此,在实现OAuth时,我想知道我可以将关于用户的哪些数据存储到数据库中?例如,目前我可以向我的网站上的所有用户发送新闻稿,但是使用OAuth可以做到这一点吗?如果每个用户使用OAuth登录,我可以访问他们的哪些信息?
对不起,如果这些问题已经在其他地方得到了回答,我一直在努力搜索,但没有找到任何关于公司可以获得什么的东西,我只发现了从基本编码的Angular 和用户的Angular 来看的优点和缺点。
谢谢!
1条答案
按热度按时间xhv8bpkk1#
使用OpenID Connect,这是OAuth 2.0的标准化扩展配置文件,您可以通过第三方提供商对用户进行身份验证。还有一些提供者已经创建了他们自己的OAuth 2.0专有扩展,为他们提供了登录语义,但它们不是标准化的,您的客户端代码必须处理这些专有扩展中的每一个。可以预期,所有使用专有OAuth 2.0扩展登录的提供商将来都会迁移到OpenID Connect。
OpenID Connect(以及专有的OAuth 2.0扩展协议)不仅对用户进行身份验证,而且还以声明的形式提供用户身份信息(或:属性)。所以他们确实提供了您正在寻找的基本信息(例如:电子邮件),如果只有用户同意将其提供给您的客户端。您可以使用该信息并将其存储在数据库中以供脱机访问。
OpenID Connect的好处是它已经标准化了许多基本声明,因此您的代码在处理用户信息时可以与提供商无关。请参阅http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims。专有的OAuth 2.0登录协议不提供标准化的声明,因此您需要为每个提供者进行自定义处理(Map/转换)。