gpt4 book ai didi

node.js - 如何对现有用户使用 _linkWith 方法? (解析服务器)

转载 作者:太空宇宙 更新时间:2023-11-04 01:42:26 27 4
gpt4 key购买 nike

我正在尝试通过 facebook 授权用户,为此我使用 _linkWith 方法。

我可以对新用户使用 _linkWith 方法。例如,此代码有效:

//I get the data with Facebook SDK
var data = {
authData: {
id: <user_id>,
access_token: <user_access_token>
}
};

const user = new Parse.User();
user._linkWith('facebook', { authData: data.authData })
.then(user => {
//Make something with the user
})
.catch(error => console.log(error));

但我想让用户有机会首先通过电子邮件和密码注册,然后通过 facebook 登录,或者相反,首先通过 facebook 注册,然后通过电子邮件和密码登录。但我无法对现有用户使用 _linkWith 方法。此代码不起作用:

const randomstring = require('randomstring');

//I get the data with Facebook SDK
var data = {
email: <user_email>,
authData: {
id: <user_id>,
access_token: <user_access_token>
}
};

const query = new Parse.Query(Parse.User);
query.equalTo('email', data.email);
query.first({ useMasterKey: true })
.then(async user => {
if (!user) {
user = new Parse.User();
user.set('password', randomstring.generate());
user.set('username', data.email);
user.set('email', data.email);
user = await user.signUp(null);
}
user._linkWith('facebook', { authData: data.authData })
.then(user => {
//Make something with the user
})
.catch(error => console.log(error));
})
.catch(error => console.log(error));

当我运行此代码时,收到错误“无法修改用户 8BNz8oMty7”。

我的问题:

  1. 是否可以对现有用户使用 _linkWith 方法,如上例所示?
  2. 如果是,怎么做?
  3. 如果没有,我如何使用 Parse Server 通过 facebook 授权用户?最后,我想获得一个拥有sessionToken的用户。

最佳答案

最新版本的 JS SDK 和 Parse Server 中添加了 MasterKey/SessionToken 选项

关于node.js - 如何对现有用户使用 _linkWith 方法? (解析服务器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52473224/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com