php - 通过社交登录方法获取电子邮件地址

标签 php email oauth openid linkedin-api

如果我错了,请纠正我:

关于与其帐户关联的用户电子邮件地址...

  • 您可以请求并接收来自 openID 提供商(即 GoogleYahoo!AOL)的电子邮件地址等)。
  • 您无法从OAuth提供商(即TwitterLinkedIn等)获取电子邮件地址。
  • 您可以通过 OAuth 接收来自 Facebook 的电子邮件地址。

如果我错了,并且有办法通过OAuth获取电子邮件地址,请描述一个简单的方法。

最佳答案

嗯,你所描述的几乎是正确的。这取决于你想要什么,Oauth 和 Open-id 协议(protocol)都提供了一种身份验证方法,但 Oauth 提供了细粒度的控制。

基本上,您可以使用 Oauth 从 Google/Yahoo/Window Live 获取电子邮件地址,根据您的分析,Twitter 和 LinkedIn 模型都没有选项返回与用户关联的电子邮件。

但是您需要清楚地了解两者之间的不同之处,因为这将使您的案例清楚所提供的内容

  1. 两者都适用于安全、身份和授权领域。
  2. 遵循权力下放原则。

使用 Open ID,不会有两个网络应用程序共享您的数据的建议。除了在非常有限的意义上,开放 ID 提供商可能保存一些有关您的一般信息。但这是通用数据。

OAuth 可让您授权一个网站(消费者)从另一网站访问您的数据 简而言之,OpenId 是粗粒度的,而 OAuth 是更细粒度的。Oauth 通过要求用户向请求访问的一方提供对数据的访问权限来提供一定程度的安全性,现在由用户来允许或拒绝而使用 Open_id 时,通用数据将可用。 所以选择权就在你手中。

关于php - 通过社交登录方法获取电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8352185/

相关文章:

php - 在 PHP 中,是否可以对对象执行 "var_dump"而不包括设置为其属性的对象转储?

php - Woocommerce API - 图像问题

node.js - 使用 Express-mailer 将本地值传递给电子邮件模板

html - Outlook 在表格上更改边框 css

php - 使用... openid 获取gmail 地址?授权?

javascript - 覆盖 oAuth 回调的 $locationProvider.htmlMode

php - Laravel Ardent 多对多关系抛出错误

php - CakePHP 3新实体保存失败,没有错误

c# - 在我终止我的应用程序之前,邮件不会发送 - System.Mail.Net

java - oauth2 的 Spring Security 向授权 URL 添加附加参数?