我正在创建一个简单的 iOS 应用程序,使用 Azure 移动服务作为后端并使用 Facebook 进行身份验证。我按照指南设置了所有内容并通过 Facebook 登录。然而,以这种方式登录时唯一返回的是一个具有两个属性的对象,如下所示
MSUser* user = {userId = @"Facebook:1234abcd",
mobileServiceAuthenticationToken = @"1234abdc567efg"}
我目前正试图检索用户的名字和姓氏,因为我拥有的令牌不是 Facebook 登录令牌,而是用于通过我的 Azure 后端进行身份验证的令牌。有没有办法在客户端获取用户名而不必打开另一个 Facebook 登录窗口? (可能使用图形 API)我找到了一种在自定义 API 中获取服务器端信息的方法,但是我更愿意在将用户信息保存到服务器之前先在客户端弄清楚这一切。 (参见此处)
编辑:我找不到在 iOS 中使用的等效 user.getIdentities,它提供了与 Graph API 一起使用的 Facebook 身份验证令牌。
这允许您在客户端使用 FB 的 SDK 通过他们的工具登录,根据需要获取用户名等,然后通过发送 FB 令牌来登录您的移动服务。
[client loginWithProvider:@"microsoftaccount"
token:@{@"access_token" : <fb token> }
completion:^(MSUser *user, NSError *error) {
}];