スクリプトの中でACL管理されたデータを扱う方法です。認証はIDやメールアドレスとパスワードなどを使って行いますが、スクリプトの実行環境の中でパスワードを利用することはできません。
そこで使ってみたいのがセッショントークンです。
認証する
まずアプリなどで通常の認証処理を行います。
var user = null; var User = new ncmb.User({userName:"testUser", password:"password"}); User.login() .then(function(auth) { user = auth; }) .catch(function(e) { console.log(e); });
このように認証処理を行った時には user.sessionToken でセッショントークンが取れます。
データを取得する
例えば通常のデータ処理では次のように1件しか返ってこなかったとします。
var Data = ncmb.DataStore("Data"); Data.fetchAll() .then(function(ary) { console.log(ary); // 1件 } );
そして、取得前に先ほどのセッショントークンを ncmb オブジェクトに対して適用します。そうするとACL制限にあるデータも取得できます。
ncmb.sessionToken = "Za...GO"; var Data = ncmb.DataStore("Data"); Data.fetchAll() .then(function(ary) { console.log(ary); // 2件 } );
この方法を使った場合、スクリプトなどで実行する際にセッショントークンを引数で渡すようにしましょう。そしてスクリプト側ではNCMBオブジェクトに対して適用すればACLがかかっているデータも取得できるようになります。セッショントークン自体はサーバから発行されるものなのでiOS/Android/Unityなど実行環境を問わず利用できます。