LoginSignup
3
2

More than 5 years have passed since last update.

node.jsを使ってNCMBでユーザ管理

Last updated at Posted at 2016-07-06

node.jsを使ってNCMBでユーザ管理しようと考え、とりあえず、ユーザ登録、ログイン、sessionTokenを使ってのデータ取得が出来るか試してみました。
とりあえず動いたので、備忘録として.....

1.ユーザ登録
Javascript SDKを使ってのユーザ登録と同じです。
ユーザ名とパスワードの登録例です。

addUser.js
// 1. ncmbモジュールの読み込み
var NCMB = require("ncmb");

// 2. mobile backendアプリとの連携
var ncmb = new NCMB("<APPLICATION_KEY>","<CLIENT_KEY>");

//Userのインスタンスを作成
var user = new ncmb.User();

//ユーザー名・パスワードを設定
user.set("userName", "Koba")
    .set("password", "12345"); 

// 新規登録
user.signUpByAccount()
    .then(function(){
      // 登録後処理
      console.log("OK");
    })
    .catch(function(err){
      // エラー処理
      console.log("NG"+err);
    });

2.ログイン処理
 便宜的にユーザ登録とは別ファイルにしてみました。

login.js
// 1. ncmbモジュールの読み込み
var NCMB = require("ncmb");

// 2. mobile backendアプリとの連携
var ncmb = new NCMB("<APPLICATION_KEY>","<CLIENT_KEY>");

//Userのインスタンスを作成
var user = new ncmb.User();

//ログイン
ncmb.User.login("Yoshio", "12345")
    .then(function(data){
      // ログイン後処理
      console.log("Login OK " + data.get("userName") + " " + ncmb.sessionToken); *1
    })
    .catch(function(err){
      // エラー処理
      console.log("Login Error " + err);
    });

  *1:ncmb.sessionTokenでセッショントークンを取得

3.セッションを使って権限管理されたデータを取得
 『Data』Classに3つデータを入れておき、そのうち1つを'Yoshio'ユーザのみ見られるようにACLを設定、1つを全員が見られるように、もう1つを別のユーザで権限制限する。

session.js
// 1. ncmbモジュールの読み込み
var NCMB = require("ncmb");

// 2. mobile backendアプリとの連携
var ncmb = new NCMB("<APPLICATION_KEY>","<CLIENT_KEY>");

// 3.sessionTokenにログイン時に取得したsessionTokeを設定
ncmb.sessionToken = "<sessionToken>";

    var Item = ncmb.DataStore("Data");
    Item.fetchAll()
      .then(function(results){
         for (var i = 0; i < results.length; i++) {
              var object = results[i];
              console.log("Date is " + object.get("Date"));
            }
      })
      .catch(function(err){
        console.log("Error " + err);
      });

ちゃんと動けば、ユーザ'Yoshio'のデータと全員が見られるデータが表示されます。

【参照】
スクリプトで権限管理されたデータを取得する(http://blog.mb.cloud.nifty.com/?p=7853)
会員管理(http://mb.cloud.nifty.com/doc/current/user/basic_usage_javascript.html)

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2