サーバー構築不要!スマートフォンアプリ向けの新クラウド

トップ >ドキュメント >SDKガイド(JavaScript):会員管理

SDKガイド(JavaScript)

ドキュメント内検索

会員管理

このドキュメントは更新されていません。
こちらから最新版をご覧ください。

プロパティ

会員管理の主要規定フィールドは以下の通りです。

// userName: ユーザー名
// password: パスワード
// mailAddress: メールアドレス
// acl:        アクセス権限
// objectId:   オブジェクトのユニークID(登録時に付加)
// createDate: オブジェクトの初回保存日時(登録時に付加)
// updateDate: オブジェクトの最新更新日時(更新時に付加)

ユーザーの新規登録

Userのインスタンスを作成後、userNameとpasswordを設定してsignUpByAccountメソッドで登録処理を行います。

var ncmb = new NCMB(apikey, clientkey);

var user = new ncmb.User();
user.set("userName", "Yamada Tarou")
    .set("password", "password")
    .set("phone number", "090-1234-5678"); // 任意フィールドを追加

// 新規登録
user.signUpByAccount()
    .then(function(){
      // 登録後処理
    })
    .catch(function(err){
      // エラー処理
    });

メールアドレスによる会員登録

requestSignUpEmailメソッドを実行すると、メールアドレスでの会員登録を行うためのメールが送信されます。
届いたメールに書かれているURLにアクセスし、パスワードを登録することでログインできるようになります。

ncmb.User.requestSignUpEmail("test@example.com")
         .then(function(data){
            // 送信後処理
         })
         .catch(function(err){
           // エラー処理
         });

ログイン・ログアウト

ログインすることでセッショントークンが発行され、特定のユーザの権限でオブジェクトにアクセスできるようになります。
通信時に利用されるセッショントークンは、「カレントユーザ」に設定されているものになります。
また、ログアウトすることでセッショントークンを無効にし、ログイン状態を終了します。
セッショントークンの有効期限は通常24時間となり、有効期限切れのセッショントークンでは通信できません。
セッショントークンの有効期限はダッシュボードで変更可能です。

ログイン

新規登録時に設定したユーザ名(またはメールアドレス)とパスワードでログインすることができます。
※SNSアカウントのログインはSNS連携を参照してください。

クラスメソッドでログインすることで、カレントユーザとして設定され、通信時にそのユーザの権限でオブジェクトにアクセスできるようになります。

// ユーザー名とパスワードでログイン
ncmb.User.login("Yamada Tarou", "password")
    .then(function(data){
      // ログイン後処理
    })
    .catch(function(err){
      // エラー処理
    });

// メールアドレスとパスワードでログイン
ncmb.User.loginWithMailAddress("test@example.com", "password")
    .then(function(data){
      // ログイン後処理
    })
    .catch(function(err){
      // エラー処理
    });

// ユーザー名とパスワードをもつインスタンスでログイン
var user = new ncmb.User({userName:"Yamada Tarou", password:"password"});
ncmb.User.login(user)
    .then(function(data){
      // ログイン後処理
    })
    .catch(function(err){
      // エラー処理
    });

// メールアドレスとパスワードをもつインスタンスでログイン
var mail_user = new ncmb.User({mailAddress: "test@example.com", password: "password"});
ncmb.User.loginWithMailAddress(mail_user)
    .then(function(data){
      // ログイン後処理
    })
    .catch(function(err){
      // エラー処理
    });

ログアウト

ログアウトする場合はlogoutメソッドを利用します。
クラスメソッドでログアウトすることで、カレントユーザ情報がリセットされます。
(インスタンスを用いてログインしている場合、システム上の
セッショントークンは無効になりますが、インスタンスのプロパティは残ります。
プロパティが残っているとセッショントークンの再取得ができないため、
同一ユーザで再度ログインする場合には事前にインスタンスのログアウトを実行してください。)

// ログアウト
ncmb.User.logout();

セッショントークンの取得

プロトタイプメソッドを用いてログインすることで、カレントユーザを変更せずに
インスタンスにセッショントークンを取得することができます。

また、プロトタイプメソッドでログアウトすることで、
カレントユーザ情報をリセットせずにインスタンスのセッショントークンを破棄することができます。

var user = new ncmb.User({userName:"Yamada Tarou", password:"password"});
user.login() //カレントユーザには設定せず、セッショントークンのみ取得
    .then(function(user){
      return user.logout(); // カレントユーザ情報は保持したまま、インスタンスのセッショントークンを無効化・破棄
    })
    .then(function(){
          // ログアウト後処理
        })
    .catch(function(err){
      // エラー処理
    });

カレントユーザーの取得

getCurrentUserメソッドを用いることで、現在カレントユーザに設定されているユーザ情報を取得することができます。
また、画面遷移などによってセッショントークン情報が失われた場合にも、
getCurrentUserを実行することで、ローカルに保存されているカレントユーザ情報から
セッショントークンを設定をし直すことができます。

特定のインスタンスがカレントユーザかどうか確認にはisCurrentUserメソッドを用います。

// カレントユーザ情報の取得
var currentUser = ncmb.User.getCurrentUser();
if (currentUser) {
    console.log("ログイン中のユーザー: " + currentUser.get("userName"));
} else {
    console.log("未ログインまたは取得に失敗");
}

// カレントユーザかどうかの確認
var user = new ncmb.User();
console.log(user.isCurrentUser()); // false

匿名ユーザー

匿名ユーザーを利用するには、ダッシュボードで機能を有効にする必要があります。
詳しくはダッシュボードの使い方をご覧ください。

loginAsAnonymousメソッドを利用することで匿名ユーザとしてログインします。
匿名ユーザは登録なしでログインできますが、ログアウトしたタイミングで保存した情報が削除されます。
匿名ユーザでログインする際にuuidを入力することができます。入力されない場合は自動的にuuidを生成します。

ncmb.User.loginAsAnonymous()
    .then(function(data){
      // ログイン後処理
    })
    .catch(function(err){
      // エラー処理
    });

ユーザーオブジェクトのセキュリティ

ユーザーオブジェクトにACLを設定することで参照/更新できるユーザーを制限することが可能です。
また、ACLにユーザを登録することで、他のオブジェクトに対してのアクセス権限を制御できます。

var Obj = ncmb.DataStore("Obj");
var obj = new Obj();
var user = new ncmb.User({userName:"Yamada Tarou", password:"password"});
var acl = new ncmb.Acl();
acl.setPublicReadAccess(true); //全員への読み込み権限を許可
user.set("acl",acl); // aclを設定
user.signUpByAccount() // 登録
    .then(function(user){
      var user_acl = new ncmb.Acl();
      user_acl.setUserReadAccess(user, true); // Yamada Tarouの読み込み許可をACLに設定
      obj.set("acl", acl); // objにACLを設定
      return obj.save(); // 保存
    })
    .then(function(data){
        // 保存後処理
    })
    .catch(function(err){
      // エラー処理
    });

ユーザー検索

ユーザーの情報を検索するには、fetchAllメソッドを利用します。
検索条件を設定することもできます。詳しくはクエリの使い方を参照してください。

ncmb.User.fetchAll()
         .then(function(results){
            for (var i = 0; i < results.length; i++) {
              var object = results[i];
              console.log(object.get("userName"));
            }
          })
         .catch(function(err){
            console.log(err);
          });

ユーザ削除

deleteメソッドでユーザオブジェクトを削除できます。

// userは保存済みのインスタンスとする
user.delete()
    .then(function(data){
        // 送信後処理
    })
    .catch(function(err){
      // エラー処理
    });

パスワードのリセット

パスワードのリセットが行えるのは、メールアドレスの登録があるユーザーのみとなります。
以下のようにリセット要求を発行すると、登録メールアドレスに「仮パスワード」「会員パスワード変更ページのURL」が送信されます。
「会員パスワード変更ページのURL」から、パスワードの変更が可能です。

また、ニフティクラウド mobile backend では、パスワード変更のAPIは用意していないため、パスワードを変更したい場合にはパスワードのリセットの処理が必要となります。

var user = new ncmb.User();
user.set("mailAddress", "mail@abc.com");
user.requestPasswordReset()
    .then(function(data){
        // 送信後処理
    })
    .catch(function(err){
      // エラー処理
    });

お探しの内容が見つからなかった場合はユーザーコミュニティ もご活用ください。(回答保証はいたしかねます)
なお、 Expertプラン以上のお客様はテクニカルサポートにてご質問を承らせて頂きます。

推奨画面サイズ1024×768px以上

ページの先頭へ