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)