OAuth - 我可以存储哪些信息?

问题描述 投票:0回答:1

我正在运营一个电子商务网站,并且想让该网站更易于访问,因此我正在考虑使用 OAuth,以便他们可以使用他们的一些社交媒体配置文件登录。我还通过电子邮件和其他方式向我的客户发送了很多营销活动,所以在用户注册的那一刻,我有一些信息,比如他们的电子邮件和一些关于他们职业的详细信息(与产品相关,不担心我不是多管闲事!)。

如果用户使用 OAuth 登录,那么他们将不会向我提供一些基本信息,例如他们的电子邮件,因为他们不必使用注册表单。

所以,在实施 OAuth 时,我想知道我可以将哪些有关用户的数据存储到我的数据库中?例如,目前我可以向我网站上的所有用户发送时事通讯,但是使用 OAuth 有可能吗?如果每个用户使用 OAuth 登录,我可以访问他们的哪些信息?

抱歉,如果这些问题已在其他地方得到回答,我一直在尝试四处搜索,但没有发现任何关于公司可以获得的东西,我只是从基本编码的角度和用户的角度发现了优点和缺点观点。

谢谢!

security authentication oauth oauth-2.0 openid-connect
1个回答
0
投票

使用 OpenID Connect,这是 OAuth 2.0 的标准化扩展配置文件,您可以通过第三方提供商对用户进行身份验证。也有许多提供者已经创建了他们自己的 OAuth 2.0 专有扩展,为他们提供了登录语义,但它们不是标准化的,您的客户端代码将不得不处理这些专有扩展中的每一个。可以预期,所有使用专有 OAuth 2.0 扩展进行登录的提供商将来都会迁移到 OpenID Connect。

OpenID Connect(以及专有的 OAuth 2.0 扩展协议)不仅对用户进行身份验证,而且还以声明(或:属性)的形式提供用户身份信息。因此,他们do提供您正在寻找的基本信息(例如电子邮件),前提是用户同意将其提供给您的客户。您可以使用该信息并将其存储在数据库中以供离线访问。

OpenID Connect 的好处是它标准化了许多基本声明,因此您的代码在处理用户信息时可以与提供者无关。请参见http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims。专有的 OAuth 2.0 登录协议不提供标准化声明,因此您需要针对每个提供商进行自定义处理(映射/翻译)。

© www.soinside.com 2019 - 2024. All rights reserved.