Apple Social Login:是否有 Apple "user info" 端点 URL?



我目前正在Salesforce中实现各种社交登录流程。(免责声明:我知道Apple/Google集成在SF中已经存在,但由于一些技术原因,我必须开发一个自定义实现)

这样的实现基本上需要三个步骤:

  1. 获取授权码
  2. 使用授权码
  3. 获取访问令牌
  4. 使用访问令牌获取用户信息

我设法实现了Google完美的社交登录。

我正在为Apple的第3步而挣扎.说到获取用户信息,Google提供端点URL:https://www.googleapis.com/oauth2/v3/userinfo

在做了一些研究之后,我找不到与Apple对应的.

有人能帮忙吗?

感谢

苹果无法直接获取用户信息。相反,Sign in with Apple流在来自授权端点的第一个响应中发送用户信息。流程如下:

  1. 用户点击"Sign in with apple";在你的web应用
  2. 你的后端构造一个请求到https://appleid.apple.com/auth/authorize与clientId和状态和重定向浏览器到该
  3. 苹果提供一个登录页面,然后询问用户是否想要与你的应用分享他们的名字和电子邮件
  4. 苹果的登录页面使用Javascript发送一个POST到你的后端与x-www-form-urlencoded参数:授权码,你的状态,加上一个JSON编码的user参数。
  5. 你的后端发送一个POST到https://appleid.apple.com/auth/token来交换一个授权令牌代码。

对于Google,您将在步骤5之后查询info端点以获得用户名,但对于Apple,您必须从步骤4捕获user参数。这是你获得用户数据的唯一地方——它只在用户第一次用苹果登录你的应用程序时提供。

步骤4中POST的参数在URL解码后如下所示:

state=4891aaebb8b9066e
code=c5600a9e2838d4dfc8829e51ede2f7ed0.0.rrwqr.xxxxxxxxxxxxxxxxxxxxxx
user={"name":{"firstName":"John","lastName":"Smith"},"email":"john@example.com"}

最新更新