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

トップ >ドキュメント >会員管理(JavaScript):基本的な使い方

会員管理(JavaScript)

基本的な使い方

概要

ニフティクラウド mobile backendでの会員の認証方法は以下の4つがあります。

このページでは、ユーザー名・パスワードでの認証方法について説明していきますので、
それ以外の認証方法を実装したい場合は、各ドキュメントをご覧ください。

アプリでの実装

ユーザーの新規登録

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

//SDKの初期化
var ncmb = new NCMB(apikey, clientkey);

//Userのインスタンスを作成
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){
      // エラー処理
    });

ログイン・ログアウト

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

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

// ユーザー名とパスワードでログイン
ncmb.User.login("Yamada Tarou", "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){
      // エラー処理
    });

ログアウトする場合は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

アプリの再起動時に自動ログインを実施したい場合は、カレントユーザーを取得したうえで
SessionTokenの有効期限が切れていないか確認する必要があります。

メールアドレス確認状態

メールアドレスが確認済みかを調べる場合はisMailAddressConfirmメソッドを使用します。

var currentUser = ncmb.User.getCurrentUser();
if (currentUser.isMailAddressConfirmed()) {
    // メールアドレス確認済み
} else {
    // メールアドレス未確認
}

パスワードのリセット

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

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

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

ダッシュボードでの操作

会員の追加と編集を行う

新しい会員ボタンをクリックして、新しい会員の新規作成を選択します。
会員の新規作成

作成した会員の情報はブラウザーからも編集可能です。
会員情報の編集
会員の名前を編集し、エンターキーをクリックすることで、以下のように保存されました。
会員情報の保存

会員を削除する

レコードの左側にあるチェックボックスを選択し、削除ボタンをクリックすると会員を削除してもいいかを確認する画面が開きます。

削除ボタンをクリックすると、会員が削除されます。

フィールドを追加する

1.新しいフィールドボタンをクリックすると作成画面が表示されます。

2.フィールド名を入力すると新しくフィールドが作成されます。

フィールドを削除する

1.画面右上のクラスの編集ボタンを選択します。

2.チェックボックスを選択し削除ボタンをクリックします。

3.確認が画面が表示され削除ボタンでフィールドが削除されます。

会員認証の方法を設定する

アプリ設定の会員認証設定を開くと、ID/パスワードによる認証や
メールアドレス/パスワードによる認証の設定を行うことができます。
二つの認証方法は、下記画像のように両方有効にすることも可能です。

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

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

ページの先頭へ