mBaaSお役立ちブログ

メイン画像
メイン画像

スクリプトで認証データを扱うには

スクリプトの中で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など実行環境を問わず利用できます。

スクリプト (JavaScript) : 基本的な使い方 | ニフティクラウド mobile backend

バックナンバー