2

状況:

  1. ユーザー A がアプリケーションにアカウントを登録し、ログインします。
  2. なんらかの理由でログアウトします。
  3. 元の登録と同じ電子メールが関連付けられているアカウントで Facebook ソーシャル サインオンを使用して、アプリケーションに再度ログインします。
  4. このサインオン用に 2 つ目のアカウントが作成され、2 つのアカウントがシステムに存在します。

これらのアカウントを、ソーシャル サインオン中に (その電子メールの存在を照会することによって) 自動的に、またはユーザー コレクション ビジネス フック (ビジネス フックを使用する場合) を使用して 1 つのアカウントにマージするにはどうすればよいですか?この特定の目的については、オンラインのドキュメントが不明確であるため)。

ノート:

  • Kinvey バックエンド
  • Facebook プラグインを使用した Phonegap
  • Jquery モバイル
  • アカウントを統合するか、既存のアカウントを見つけて、サインオン時にソーシャル ID を追加したい
  • ユーザーを削除できないと仮定します
  • できれば、PreSave Kinvey ビジネス ロジック フックを使用してこの手順を実行してください。

乾杯、

4

1 に答える 1

1

基本的にユーザーのマージを実現するために、独自のカスタムエンドポイントを作成することができました。

ユーザーが kinvey アカウントで存在し、kinvey ユーザーと一致する電子メール アドレスで facebook を使用してログインしようとすると、次のエンド ポイント コードを使用して、既存のユーザーにソーシャル ID を追加してから、そのユーザーを使用してログインを試みます (この機能は、システムにログインしていないユーザーのゲスト ログインを維持しているためにのみ機能しました)。

これが誰かに役立つことを願っています。

function onRequest(request, response, modules) {
  var users = modules.collectionAccess.collection('user');
  var social = request.body.social;
  users.findAndModify({"username":request.body.email},{$set:{"_socialIdentity":social}},
  function(err,result){
    if(err){
      response.error(err);
      response.complete();
    }else{
     if(!result._id){
       response.body = {message:"No User Found Matching This Email"};
       response.complete();
     }else{
       response.body = {message:"User Was Hopefully Updated"};
       response.complete();
     }
    }
  });
}
于 2016-01-28T04:02:21.100 に答える