【问题标题】:too short FB accessToken in Kinvey _socialIdentity using kinvey-nativescript-sdkKinvey _socialIdentity 中使用 kinvey-nativescript-sdk 的 FB accessToken 太短
【发布时间】:2019-06-09 11:19:35
【问题描述】:

我在我的 NativeScript 应用程序中使用 Kinvey MIC 使用 Facebook 登录过程。我能够登录到 Kinvey 并且成功创建了 _socialIdentity 记录。由于我还需要知道用户在 FB 帐户中注册的电子邮件(这不是在 FB 的基本用户响应中发送的),我需要为此查询 FB Graph API。

https://graph.facebook.com/v3.2/me?fields=id,name,email&access_token= + accessToken

如果我使用存储在 Kinvey 的 _socialIdentity 中的 accessToken,FB 会返回: “错误”: { JS: "message": "无效的 OAuth 访问令牌。", JS:“类型”:“OAuthException”, JS:“代码”:190, JS:}

如果我使用 FB 开发人员工具生成的 accessToken 并将其硬编码到我的 NS 代码中,一切正常 - 我会收到所有请求的信息。

我发现的差异是 accessToken 的长度: Kinvey存储的accessToken有40个字符,而FB工具生成的有247个字符。

有人可以解释为什么 Kinvey 的 _socialIdentity 中的 FB accessToken 很短/无法进一步使用,或者如何使用 kinvey-nativescript-sdk 获取有效的 accessToken? 此外,如果有人使用 kinvey-nativescript-sdk 从 FB 帐户获取用户的联系电子邮件。

谢谢

【问题讨论】:

  • 你能告诉我们一些代码,你是如何检索 FB 令牌的吗?
  • accessToken = response.data._socialIdentity.kinveyAuth.idp_access_token; http.getJSON( "graph.facebook.com/v3.2/…" + accessToken ) .then(res => { console.log(res); }) .catch(function(error) { console.log(error); });
  • 现在工作正常,因为 Bilger 建议在 Kinvey MIC 设置中添加额外的允许属性。

标签: facebook nativescript access-token kinvey


【解决方案1】:

您能否尝试将client_token 添加到 Mobile Identity Connect 服务配置的允许的属性部分?

这将在 kinveyAuth 对象(包含在 User 实体的 _socialIdentity 属性中)上创建一个新属性,该属性将保存您所说的访问令牌。

你能试试吗,如果有效,请告诉我?

编辑:您也可以尝试将idp_access_token 添加到允许的属性部分。这将直接为kinveyAuth 实体创建一个属性,该属性将保存所需的令牌。

【讨论】:

  • 比尔格,完美!按照建议添加 client_token 会将 \"access_token\", ",\"token_type\":\"bearer\",\"expires_in\" 属性添加到 Kinvey 的用户集合中 _socialIdentity 的 client_token 部分。idp_access_token 有效完全按照描述。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多