Class: NebulaService

NebulaService

JavaScript SDK メインサービスクラス


new NebulaService()

NebulaService コンストラクタ。

NebulaService インスタンスを生成する。生成したインスタンス毎に異なるテナント/アプリに接続できる。 Nebula はデフォルトの NebulaService インスタンスである。

Example
var service2 = new Nebula.NebulaService();

Members


<static, constant> this.BUCKET_MODE_LOCAL

バケットモード - ローカルモード


<static, constant> this.BUCKET_MODE_ONLINE

バケットモード - オンラインモード


<static, constant> this.BUCKET_MODE_REPLICA

バケットモード - レプリカモード

Methods


getAppID()

アプリケーションIDを取得する

Returns:

アプリケーションID

Type
string

getAppKey()

アプリケーションキーを取得する

Returns:

アプリケーションキー

Type
string

getBaseUri()

エンドポイントURLを取得する

Returns:

エンドポイントURL

Type
string

getCurrentUser()

カレントユーザのログイン情報を返す。 未ログイン、またはセッショントークンが有効期限切れの場合は null を返す。

Returns:

ユーザ情報。_id, username, email, sessionToken, expire, options, groups フィールドが含まれる。

Type
Object

getHttp2()

HTTP/2の有効/無効を返却する (Node.js使用時のみ有効)
HTTP/2 を使用する場合は、Node.js v8.4 以上が必要。

Returns:

HTTP/2を使用する場合は trueを返却する。

Type
boolean

getLoginCacheValidTime(callbacks)

ログインキャッシュ有効期限の取得(オフライン機能限定)

・オフライン用ログインキャッシュ有効期限を取得する。

Parameters:
Name Type Description
callbacks Callbacks

結果を受け取るコールバック

・callbacks は、成功時と失敗時の応答コールバックを指定する。
    {
        success : function(expire) {
            // 成功時の処理
            // expire : ログインキャッシュ有効期限
        },
        error : function(error) {
            // 失敗時の処理
        }
    }
・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success(expire)
            expireには、ログインキャッシュ有効期限(秒)が格納される。
・処理が失敗した場合は、error の呼び出しにて通知する。
    error の書式は以下の通りとする。
        error(error)
            error : エラー要因がJSON 形式で返る。
             {
                 "status"        : ステータスコード,
                 "statusText"    : エラーメッセージ,
                 "responseText"  : レスポンスメッセージ
             }
Returns:

Promise

Type
Promise.<any>

getServiceID()

サービスIDを返す

Returns:

サービスID

Type
string

getTenantID()

テナントIDを取得する

Returns:

テナントID

Type
string

initialize(params)

MBaaS JavaScript SDK 初期化

・MBaaS JavaScript SDK(以降、SDKと称す)を初期化する。
・アプリケーションは、SDK の初回利用またはパラメータ変更を行う際に呼び出さなければならない。

Parameters:
Name Type Description
params Object

MBaaS JavaScript SDK 初期化パラメータ

・params は、初期化パラメータをJSON 形式で指定する。
    {
        "tenant"              : "my-tenant-id",
        "appId"               : "my-app-id",
        "appKey"              : "my-app-key",
        "baseUri"             : "http://baas.example.com/api",
        "offline"             : false,
        "allowSelfSignedCert" : false,
        "serviceId"           : "my-service-id",
        "debugMode"           : "debug",
        "enableHttp2"         : false
    }
    (プロパティ名)
    tenant      : テナント毎に割り当てられるユニークなID(必須)
    appId       : アプリケーション毎に割り当てられるユニークなID(必須)
    appKey      : アプリケーション毎に割り当てられる秘密キー(必須)
    baseUri     : MBaaS REST API のエンドポイントURL(必須)
    offline      : オフライン機能の指定。(オプション)
                  オフライン機能を利用する場合はtrue を指定する。(初期値:false)
    allowSelfSignedCert : 自己署名証明書の使用を認める指定。(オプション)
                  オフラインモード使用時(SDE for SmartDevice使用時)、
                  及びNode.js使用時(Https Proxy未使用時)のみ有効。
                  (Node.jsでHttps Proxy使用時は、NebulaService#setHttpsProxy()を参照して設定を行うこと)
                  SSL接続に自己署名証明書を使用しているMBaaSサーバを
                  利用する場合はtrue を指定する。(初期値:false)
    serviceId   : NebulaService毎に割り当てられるユニークなID(オプション)
                  マルチテナント機能を使用して複数のNebulaService(インスタンス)を生成する場合等に使用。
                  本IDはログイン情報キャッシュ時のKey情報に利用される。
    debugMode   : ログ出力レベル。(オプション)
                  "release", "debug", "test" のいずれかを指定
                  debug は、コンソール上にデバッグログを出力する。
                  release は、クリティカルなエラー以外のコンソール上にデバッグログを出力しない。
                  test は、TBD。
    enableHttp2 : HTTP/2使用設定 (オプション)
                  Node.js使用時(v8.4.0以降)のみ有効。
                  通信にHTTP/2を利用する場合はtrueを指定する。(初期値: false)
Returns:

this

Type
NebulaService

isClientCertSet()

client証明書の設定が有効または無効を返す(Node.js使用時のみ有効)。

https Proxyを使用する場合、本設定は無効である。

Returns:

証明書設定済みならばtrue

Type
boolean

removeCurrentUser()

カレントユーザのログイン情報を破棄する

Returns:

this

Type
NebulaService

setAppKey(key)

アプリケーションキーを変更する

Parameters:
Name Type Description
key string

アプリケーションキー

Returns:

this

Type
NebulaService

setClientCertificate(certInfo)

クライアント証明書の設定を行う (Node.js使用時のみ有効)。

https Proxyを使用する場合、本設定は無効である。NebulaService#setHttpsProxy()のoptionsに証明書の設定を行うこと。

Parameters:
Name Type Description
certInfo Object

証明書情報を指定する。 pfxとpassphrase(またはkeyとcert),ca を指定する。 pfxとcert/keyを同時に指定した場合の動作は保証しない。 nullを指定した場合は証明書の設定を解除する。

Returns:

this

Type
NebulaService
Example
// p12(pfx)形式のクライアント証明書(証明書/秘密鍵)を指定、p12ファイルのパスフレーズを指定
 // 信頼するCA証明書として、2件を指定する場合
 service.setClientCertificate({
   pfx: fs.readFileSync('clientCertificate.p12'),
   passphrase: 'password',
   ca: [fs.readFileSync('caCert1.pem'), fs.readFileSync('caCert2.pem')]
 });

 // pem形式のクライアント証明、キーを使用。CA証明書を1件指定
 service.setClientCertificate({
   cert: fs.readFileSync('clientCert.pem'),
   key: fs.readFileSync('clientKey.pem'),
   ca: fs.readFileSync('caCert1.pem')
 });

setCurrentUser(user)

カレントユーザのログイン情報をセットする。

ブラウザでは local storage に永続化され、NebulaService 間で共有される。 Node.js では NebulaService 内(メモリ)に個別に保持される。

Parameters:
Name Type Description
user User

ユーザ

Returns:

this

Type
NebulaService

setHttp2(enable)

HTTP2 の有効/無効を指定する。(Node.js使用時のみ有効)
HTTP/2 を使用する場合は、Node.js v8.4 以上が必要。
HTTP/2使用時は、Proxy(NebulaService#setHttpProxyNebulaService#setHttpsProxy)は無効である。

Parameters:
Name Type Description
enable boolean

HTTP/2を使用する場合はtrueを設定する。


setHttpProxy(proxy)

HTTP プロキシを設定する (Node.js専用)。

注: 本設定はグローバル設定である(NebulaService毎ではない)

Parameters:
Name Type Description
proxy Object

プロキシ設定。host, port を指定する。

Example
// Example:
 Nebula.setHttpProxy({ host: 'proxysv.example.com', port: 8080});

setHttpsProxy(proxy, options)

HTTPS プロキシを設定する (Node.js専用)。

注: 本設定はグローバル設定である(NebulaService毎ではない)

Parameters:
Name Type Description
proxy Object

プロキシ設定。host, port を指定する。

options Object

https.request() に引き渡すオプション(省略可)。

クライアント証明書認証に使用する証明書の設定などを行う。 使用方法はExampleを参照のこと。

Example
// Example:
 // https Proxyを指定する
 Nebula.setHttpsProxy({ host: 'proxysv.example.com', port: 8080});

 // p12(pfx)形式のクライアント証明書(証明書/秘密鍵)を指定、p12ファイルのパスフレーズを指定
 // 信頼するCA証明書として、2件を指定する場合
 Nebula.setHttpsProxy({ host: 'proxysv.example.com', port: 8080},
 {
   pfx: fs.readFileSync('clientCertificate.p12'),
   passphrase: 'password',
   ca: [fs.readFileSync('caCert1.pem'), fs.readFileSync('caCert2.pem')]
 });

 // pem形式のクライアント証明、キーを使用。CA証明書を1件指定
 Nebula.setHttpsProxy({ host: 'proxysv.example.com', port: 8080},
 {
   cert: fs.readFileSync('clientCert.pem'),
   key: fs.readFileSync('clientKey.pem'),
   ca: fs.readFileSync('caCert1.pem')
 });

 // 自己署名証明書を使用しているサーバへの接続を許可する
 Nebula.setHttpsProxy({ host: 'proxysv.example.com', port: 8080},
 {
   rejectUnauthorized: false
 });

setLoginCacheValidTime(expire, callbacks)

ログインキャッシュ有効期限の設定(オフライン機能限定)

・オフライン用ログインキャッシュ有効期限を設定する。

Parameters:
Name Type Description
expire number

ログインキャッシュ有効期限(秒)

・expireには、ログインキャッシュ有効期限(秒)を指定する。
    デフォルトは、「259200秒(72時間)」である。
callbacks Callbacks

結果を受け取るコールバック

・callbacks は、成功時と失敗時の応答コールバックを指定する。
    {
        success : function() {
            // 成功時の処理
        },
        error : function(error) {
            // 失敗時の処理
        }
    }
・処理が成功した場合、success の呼び出しにて通知する。
    success の書式は以下の通りとする。
        success()
・処理が失敗した場合は、error の呼び出しにて通知する。
    error の書式は以下の通りとする。
        error(error)
            error : エラー要因がJSON 形式で返る。
             {
                 "status"        : ステータスコード,
                 "statusText"    : エラーメッセージ,
                 "responseText"  : レスポンスメッセージ
             }
Returns:

Promise

Type
Promise.<any>

setNetworkEventListener(listener)

ネットワークイベントリスナの登録(オフライン機能限定)

・ネットワークの接続状態変更イベントを受け取るリスナーを設定する。

Parameters:
Name Type Description
listener Object

ネットワークイベントリスナ

・listener には、イベント発生時のコールバックを指定する。
    {
        onNetworkStateChanged : function(isOnline) {
            // ネットワークの接続状態が変更されたときに呼び出される
            // isOnline : trueはオンライン状態、falseはオフライン状態
        }
    }
・すでに登録している場合は、上書きされる。
・登録を取り消す場合は、listener に null を指定する。
Returns:

this

Type
NebulaService

setSessionToken(sessionToken)

セッショントークンをセットする。セッショントークンの有効期限は無期限扱い。

ユーザがログイン済みの場合は、セッショントークンのみが変更される。 未ログインの場合は、ダミーユーザが保存される (セッショントークン以外のフィールドは空)。

ブラウザでは local storage に永続化され、NebulaService 間で共有される。 Node.js では NebulaService 内(メモリ)に個別に保持される。

Parameters:
Name Type Description
sessionToken string

セッショントークン

Returns:

this

Type
NebulaService