我正在运营一个电子商务网站,并希望让网站更易于访问,因此我正在考虑使用OAuth,以便他们可以使用他们的一些社交媒体资料进行登录。我还通过电子邮件和其他方式向我的客户发送了很多营销活动,所以在用户注册时我会收到一些信息,例如他们的电子邮件和一些有关他们职业的详细信息(与产品相关,不要担心我不是多管闲事!)。
如果用户使用OAuth登录,则他们不会向我提供某些基本信息,例如他们的电子邮件,因为他们不必使用注册表单。
因此,在实施OAuth时,我想知道我可以在数据库中存储哪些关于用户的数据?目前我可以向我网站上的所有用户发送简报,但OAuth可能会这样吗?如果每个用户使用OAuth登录,我可以访问哪些信息?
很抱歉,如果这些问题已经在其他地方得到解答,我一直在尝试搜索但是没有找到关于公司可以获得什么的任何信息,我只是从基本的编码角度和从中找到了优点和缺点。用户的观点。
谢谢!
答案 0 :(得分:0)
使用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登录协议不提供标准化声明,因此您需要为每个提供商进行自定义处理(映射/转换)。