无法读取未定义的属性“验证”-使用帐户工具包解析服务器

时间:2018-09-22 13:13:20

标签: javascript parse-server account-kit

问题说明

我正在使用Parse Server 3.0.0,并试图使其与Facebook的Account Kit一起使用。我已按照文档中的说明进行了以下操作:

  1. 已在 auth 中配置的 facebookaccountkit 传递给 ParseServer()

var polaris = new ParseServer({
  databaseURI: 'mongodb://localhost:27017/polaris',
  cloud: __dirname + '/cloud/main.js',
  appId: 'polarisAppId',
  masterKey: 'polarisMasterKey',
  serverURL: 'http://' + ipAddress + ':1337/polaris',
  auth: {
    facebookaccountkit: {
      appIds: ["app_id_here"],
      appSecret: "app_secret_here"
    },
  }
});
  1. 通过电话验证在我的Android内部获取访问令牌。
  2. 以以下方式在云代码中调用 _linkWith()

let accountKitAuthData = {
    "id": accountKitId,
    "access_token": accessToken,
    "last_refresh": lastRefresh
}

let user = new Parse.User()
user._linkWith('facebookaccountkit', accountKitAuthData).then(function (user) {
    console.log("linkWith method finished ")
    console.log("user object type " + (typeof user))
});

但是,毕竟,我得到了以下错误:

(node:21807) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'authenticate' of undefined`

我最好的猜测是 facebookaccountkit 提供程序由于某种原因未注册,但我可能是错的。请帮忙!

预期结果

使用facebookaccountkit凭据链接用户

实际结果

错误:

(node:21807) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'authenticate' of undefined`

环境设置

  • 服务器
    • 解析服务器版本:3.0.0
    • 操作系统:Ubuntu
    • 硬件:-
    • 本地主机还是远程服务器? (AWS,Heroku,Azure,Digital Ocean等):Google Cloud Platform

1 个答案:

答案 0 :(得分:0)

使用此:

let accountKitAuthData = {
    "id": accountKitId,
    "access_token": accessToken,
    "last_refresh": lastRefresh
}

let user = new Parse.User()
user._linkWith('facebookaccountkit', { authData: accountKitAuthData }).then(function (user) {
    console.log("linkWith method finished ")
    console.log("user object type " + (typeof user))
});