facebook - Kinvey _socialIdentity 中使用 kinvey-nativescript-sdk 的 FB accessToken 太短
问题描述
我在我的 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 会返回:“error”:{ JS:“message”:“无效的 OAuth 访问令牌。”,JS:“type”:“OAuthException”,JS:“code”:190, JS:}
如果我使用 FB 开发人员工具生成的 accessToken 并将其硬编码到我的 NS 代码中,那么一切正常 - 我会收到所有请求的信息。
我发现的区别在于 accessToken 的长度:存储在 Kinvey 中的 accessToken 有 40 个字符,但 FB 工具生成的有 247 个字符。
有人可以解释为什么 Kinvey 的 _socialIdentity 中的 FB accessToken 很短/无法进一步使用,或者如何使用 kinvey-nativescript-sdk 获得有效的 accessToken?此外,如果有人使用 kinvey-nativescript-sdk 从 FB 帐户获取用户的联系电子邮件。
谢谢
解决方案
您可以尝试添加client_token
到 Mobile Identity Connect 服务配置的允许属性部分吗?
这将在kinveyAuth
对象上创建一个新属性(包含在_socialIdentity
User 实体的属性中),它将保存您正在谈论的访问令牌。
你可以试试,如果它有效,请告诉我?
编辑:您也可以尝试添加idp_access_token
到“允许的属性”部分。这将直接为kinveyAuth
实体创建一个属性,该属性将仅包含所需的令牌。
推荐阅读
- c# - 如何将 Windows 窗体数据保存到 csv?
- php - Laravel 8 - 旧输入和验证错误消息不起作用
- c# - SQL转换为LINQ,子查询被调用两次
- authorization - 在 wso2 IS XACML 策略中如何验证角色及其权限
- algorithm - 检测最小边数以打破所有循环的算法
- elasticsearch - IP 过滤不起作用 “试用许可证” Elasticsearch
- python - 获取带有标志详细信息和处理的时间
- python - 当索引和列不匹配时,如何使用来自另一个数据帧的值更新数据帧
- python - AttributeError Spotpy
- laravel - Laravel Datatable 默认搜索不适用于自定义过滤器