5. ユーザ管理

ここではユーザ管理機能の利用方法について説明します。

5.1. サインアップ

ユーザを新規登録します。

NbUser user = new NbUser();

// ユーザ名とE-mail アドレスを設定
// (Email は必須、ユーザ名はオプション)
user.Username = "taro_nichiden";
user.Email = "taro@example.com";

// サインアップ実行
var user = await user.SignUpAsync(password);

まずはじめに NbUser のインスタンスを取得します。

つぎに、username と email を設定し、SignUpAsync() を呼び出してサインアップを行います。 登録が成功すると、登録された NbUser のインスタンスが返却されます。

5.2. ログイン

// username でログインする場合
var user = await NbUser.LoginWithUsernameAsync(username, password);

// email でログインする場合
var user = await NbUser.LoginWithEmailAsync(email, password);

ログインが完了すると、ログイン状態(セッショントークン)がメモリ上に保存されます。

5.3. ワンタイムトークンログイン

SAML/OIDCを使用したワンタイムトークンログインは以下のように実施します。

// ログイン用のパラメータ作成
var param = new NbUser.LoginParam() { Token = onetimeToken };

// ログイン
var user = await NbUser.LoginAsync(param, service);

SAML/OIDCログインについては、 認証機能ガイド の「ADFS/SAML認証」および「OpenID Connect認証」の「アプリケーションの開発」 ⇒「Nativeアプリケーション(C#)」を参照してください。

5.4. ログイン状態の取得

ユーザがログイン状態かどうかは IsLoggedIn() で確認できます。

if (NbUser.IsLoggedIn()) {
    // ログイン中
}

5.5. ログアウト

ログアウトは LogoutAsync() で行います。

await NbUser.LogoutAsync();

5.6. パスワードリセット

// username でリセットする場合
await NbUser.ResetPasswordWithUsernameAsync(username);

// email でリセットする場合
await NbUser.ResetPasswordWithEmailAsync(email);

username と email のいずれかを使ってパスワードをリセットします。 パスワードリセットを実行すると、確認メールがユーザに送信されます。

5.7. オフラインログイン

オフラインログイン機能を使用する場合は、NbUser の代わりに NbOfflineUser クラスを 使用して下さい。

以下に例を示します。

var user = await NbOfflineUser.LoginWithUsernameAsync(username, password, LoginMode.Auto);

第3引数に LoginMode を指定します。LoginMode には以下のいずれかの値を使用できます。

  • LoginMode.Online : オンラインログインを行います。ログインに成功すると、ログインキャッシュが作成されます。
  • LoginMode.Offline : オフラインログインを行います。ログインキャッシュが予め作成されている必要があります。
  • LoginMode.Auto : ネットワークが接続されていればオンラインログイン、接続されていなければオフラインログインを行います。