LoginSignup
0
0

Parse Server JavaScript SDKの使い方(JavaScriptでのロール操作)

Posted at

ニフクラ mobile backendは3月末で終了します

ニフクラ mobile backendからの移行先として、お勧めしているのがParse Serverです。設計思想が近く、変更するコード量が少なく済むのではないかと思います。

Parse ServerではWebアプリやCordova(Monaca)アプリ向けにSDKを提供していますが、ドキュメントは英語のみとなっています。そこで、各機能の使い方を解説します。今回はアクセス権限に関係するロールの操作について解説します。

JavaScript SDKのインストール

JavaScript SDKはCDN版を使うか、npmでインストールする方法があります。CDNの場合は、下記のタグでインストールできます。

<script src="https://npmcdn.com/parse/dist/parse.min.js"></script>

npmの場合は、下記のコマンドでインストールできます。

npm install parse

ただし、JavaScript SDKはTypeScript用の型定義を提供していませんので注意してください。

初期化

SDKの初期化は任意の場所で行えますが、npmの場合はまずインポートが必要です。

const Parse = require('parse');
// または
import Parse from 'parse';

React Nativeの場合は下記になります。

const Parse = require('parse/react-native.js');
// または
import Parse from 'parse/react-native';

さらにNode.js向けは以下になります。

const Parse = require('parse/node');
// または
import Parse from 'parse/dist/parse.min.js';

初期化はアプリIDとJavaScriptキーを指定します。さらにサーバーURLを指定します。

Parse.initialize("YOUR_APP_ID", "YOUR_JAVASCRIPT_KEY");
Parse.serverURL = 'http://YOUR_PARSE_SERVER:1337/parse'

ロールの作成

ロールは子ロールと、ユーザーを持つことができます。以下の例では、 Administrator というロールを作成しています。

const roleACL = new Parse.ACL();
roleACL.setPublicReadAccess(true);
const role = new Parse.Role("Administrator", roleACL);
await role.save();

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

既存のロールに対して、新しいユーザーを追加する場合のコードです。

const role = new Parse.Role(roleName, roleACL);
role.getUsers().add(usersToAddToRole);
role.getRoles().add(rolesToAddToRole);
await role.save();

オブジェクトにロールを設定する

オブジェクトにACL設定としてロールを設定する場合には setACL を利用します。

const wallPost = new Parse.Object("WallPost");
const postACL = new Parse.ACL();
postACL.setRoleWriteAccess(moderators, true);
wallPost.setACL(postACL);
await wallPost.save();

ロールからユーザーを削除する

ロールからユーザーを消す場合には remove を使います。もちろんACLの設定によっては、削除できない場合もあります。

role.getUsers().remove(user1);
role.getRoles().remove(user2);
await role.save()

既存のロールに新しいロールを追加する

ロールは入れ子の構造にできます。

role.getRoles().add(childRole);
await role.save();

子ロールを削除する

子ロールを削除する場合には remove を使います。

role.getRoles().remove(childRole);
await role.save();

まとめ

Parse Serverのロールオブジェクトは、NCMBと変わらず利用できます。ユーザーを入れる形もそうですし、ロールを入れ子にできるのもNCMBと変わりません。

ACLの仕組みもParse ServerとNCMBで似ています。他のmBaaSと比べると、全体の修正量はそこまで多くないと思われます。載せ替え先として検討に挙げてください。

Android Developers Guide | Parse

0
0
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
0
0