no versions found for AlierOnNodeReferences / cred/index / en

Credentials

モジュールパス: /NodeJS/alier_sys/Credentials.js

概要


ユーザを管理するためのモジュールです。

利用方法

利用するには、まずテーブル名と利用したいストア名を登録してください。

const { registerTable } = require("@suredesigns/alier/Credentials");

registerTable("my-table", "gdbm", { name: "my_table" });

ストアを登録すると Users インターフェースから各種操作を行うことができます。

const { Users } = require("@suredesigns/alier/Credentials");

// foo を登録
await Users.signup("foo");

// foo にコンテンツを設定
await Users.updateContent("foo", "1234");

// foo のコンテンツを取得
const pass = await Users.getContent("foo");
consle.log(pass);
// => "1234"

ストアクラス

Alier が提供しているストアは次の表の通りです:

ストア名 特徴
inmemory ユーザデータをメモリに保持します。
jsoncached ユーザデータをメモリに保持し、JSON ファイルにキャッシュします。
gdbm ユーザデータを GDBM に保存します。

inmemory

warning

このストアはデバッグ用です。本番環境で使用しないでください。

メモリ上にユーザデータをマップで保持します。サーバアプリが動作を停止するとデータは消去されます。

このストアタイプでは引数 args が必要ありません。registerTabledefaultUserInfo を指定する場合は args に空オブジェクト {} などなにか値を指定してから defaultUserInfo を指定してください。

jsoncached

warning

このストアはデバッグ用です。本番環境で使用しないでください。

メモリ上にユーザデータをマップで保持し、マップに変更があったときはマップを JSON ファイルにキャッシュします。

args のプロパティは以下のようになります:

  • name: string

    テーブル名です。ファイル名は `name`.json となります。

  • dirpath: string

    JSON ファイルを保存、ロードするディレクトリパスです。エントリースクリプトからの相対パスか絶対パスを指定してください。

    • 既定値はエントリースクリプトと同じディレクトリです。

gdbm

note

このストアはシステムに GDBM がインストールされている必要があります。

GDBM にユーザデータを保存します。

args のプロパティは以下のようになります:

  • name: string

    テーブル名です。ファイル名にも利用されます。

  • dirpath: string?

    GDBM ファイルを配置するディレクトリのパスです。エントリースクリプトからの相対パスか絶対パスを指定してください。

    • 既定値はエントリースクリプトと同じディレクトリです。
  • blockSize: number?

    データベースファイルを作成するときのブロックサイズです。

GDBM のインストール
  • Ubuntu

    sudo apt update
    sudo apt install libgdbm
  • ローカルでビルド

    1. ダウンロード

      mkdir deps
      cd deps
      wget https://ftp.gnu.org/gnu/gdbm/gdbm-1.24.tar.gz
      tar -xvf gdbm-1.24.tar.gz
      cd gdbm-1.24
    2. インストール

      INSTALL にしたがってビルド、インストールしてください。

      • システムにインストール

        ./configure
        make
        sudo make install
      • 任意の場所にインストール

        ./configure --prefix=/path/to/install/gdbm
        make
        make install

        この方法でインストールした場合、インストールした場所にパスが通っていないと GDBM を利用できないので、パスを通すか環境変数 LD_LIBRARY_PATH でインストールした場所を指定する必要があります。

バイナリファイルの配置

配布されたバイナリファイルを NodeJS/build/Release 下に配置してください。

NodeJS/
`-- build/
    `-- Release
        `-- gdbm_binding.node

バージョン違いなどでうまく機能しない場合は各環境でビルドを実行してください。

ビルド

GDBM バインディングライブラリをビルドします。ビルドには node-gyp を利用しています。

  1. GDBM の開発ファイルをインストール

    • Ubuntu

      sudo apt update
      sudo apt install libgdbm-dev
    • ローカルでビルド

      開発ファイルは生成済みです。

  2. node-gyp をインストール

    npm install -g node-gyp
  3. 準備

    node-gyp configure
    パスが通っていない場所にインストールした GDBM を利用する

    --gdbm_root フラグで GDBM の参照先を指定できます。

    node-gyp configure --gdbm_root=/path/to/install/gdbm

    /path/to/gdbm は絶対パスのみ有効です。

  4. ビルド

    node-gyp build
    デバッグビルド

    --debug フラグを付けるとデバッグビルドします。

    node-gyp build --debug

    GDBM のリンクが静的リンクになるので、ビルドしたバイナリファイルを他環境に渡す想定ではありません。

実行

バイナリファイルの配置に成功していれば GDBM を利用できます。

node sample_gdbm.cjs
パスが通っていない場所にインストールした GDBM を利用する

環境変数 LD_LIBRARY_PATH を利用して GDBM ライブラリを指定する必要があります。

LD_LIBRARY_PATH=/path/to/install/gdbm/lib node sample_gdbm.cjs
デバッグモード

環境変数 ALIER_GDBM_DEBUG=1 を利用するとデバッグビルドした GDBM バインディングで実行します。

ALIER_GDBM_DEBUG=1 node sample_gdbm.cjs

カスタムクラス

Alier で提供しているストア以外の実装を使用したい場合、AbstractCredentialsStore を継承したストアクラスを実装し、StoreClasses.register() で登録することで使用可能になります。

関数


このモジュールは以下の関数を公開しています。

registerTable()

  • ユーザ管理テーブルを登録します。

オブジェクト


このモジュールは以下のオブジェクトを公開しています。

クラス


このモジュールは以下のクラスを公開しています。