代码之家  ›  专栏  ›  技术社区  ›  ns16 Darkato

如何对现有用户使用linkWith方法?(分析服务器)

  •  1
  • ns16 Darkato  · 技术社区  · 6 年前

    我正试图通过facebook授权用户,为此我使用了'u 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));
    

    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));
    

    运行此代码时,出现错误“Cannotmodifyuser8bnzz8omty7”。

    我的问题:

    1. 是否可以在现有用户上使用@linkWith方法,如上面的示例所示?
    2. 如果是,怎么做?
    0 回复  |  直到 6 年前
        1
  •  0
  •   Diamond Lewis    5 年前

    在JS SDK和Parse服务器的最新版本中添加了MasterKey/SessionToken选项

        2
  •  0
  •   Loïc Dieudonné    4 年前

    回答你:

    1. 是的,您只能在现有用户上使用它,但请确保该用户已登录到其解析帐户才能使用它。

    2. 您需要使用linkWith而不是linkWith,因为linkWith已贬值。此外,您还需要使用用户的sessionToken,以获得编辑权限,如下所示:

    userLoggedIn.linkWith("facebook", {authData: facebookAuthData},{ sessionToken: userLoggedIn.get("sessionToken") })
    

    您可以在此处找到完整的代码示例: https://stackoverflow.com/a/38718115/3562050