FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

Deno/TypeScript用SDKでのロールの使い方

f:id:mbaasdevrel:20200609182129j:plain

機能的にはまだまだ少ないですが、Deno/TypeScript用のSDKを開発中です。TypeScriptで作られており、VueやReact、Angularとの組み合わせでも利用できます。

NCMBMania/ncmb_deno: deno用のSDKです

今回はサブクエリの使い方です。クエリの基本的な使い方はこちらのクエリオペランドに関する記事をご覧ください。この記事ではさらに詳細なデータ検索を可能にするサブクエリの使い方を紹介します。

インストール方法

インストールは普段使っているnpmやYarnで可能です。

npm install ncmb_ts -S

初期化

初期化は次のように行います。

// Node.jsの場合
import NCMB, { NCMBUser, NCMBQuery } from 'ncmb_ts'
// denoの場合
import NCMB, { NCMBUser, NCMBQuery } from 'https://raw.githubusercontent.com/NCMBMania/ncmb_deno/master/deno/ncmb.ts'
const ncmb = new NCMB('YOUR_APPLICATION_KEY', 'YOUR_CLIENT_KEY')

ロールの作成

ロールの作成は NCMBRole を使います。

const role = new NCMBRole;
role
  .set('roleName', 'admin');
await role.save();

ロールの削除

ロールの削除は delete を使います。

await role.delete();

ロールにユーザを追加する

ロールに紐付くユーザを追加する場合には addUser を使います。

const user = new NCMBUser;
user
  .set('userName', 'tester')
  .set('password', 'tester');
await user.signUpByAccount();
await role
  .addUser(user)
  .save();

ロールに子ロールを追加する

ロール下で管理するロールを追加する場合には addRole を使います。

await role
  .addRole(role2)
  .save();

ロールを検索する

ロールは query で取得できるNCMBQueryを利用します。

const query = NCMBRole.query();
const role2 = (await query
  .equalTo('roleName', roleName)
  .fetch() as NCMBRole;

ロールに紐付くユーザを取得する

特定のロールに紐付くユーザを取得する場合には fetchUser を使います。

await role
  .fetchUser()

ロールに紐付くロールを取得する

特定のロールに紐付くロールを取得する場合には fetchRole を使います。

await role
  .fetchRole()

注意点

ロールもデータストアのオブジェクトと同様にACLで管理されます。権限がない場合、fetchUserやfetchRoleを実行しても結果は返ってきませんので注意してください。

まとめ

ロールを使うことでデータを詳細、セキュアに管理できます。不正アクセスなどを防止するためにも、ロールを適切に運用してください。

NCMBMania/ncmb_deno: deno用のSDKです

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。