5. ユーザ管理

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

5.1. サインアップ

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

// NBUser インスタンスの生成
NBUser *user = [NBUser new];
user.username = @"taro";
user.email = @"taro@nichiden.example.com";

// サインアップ
[user signUpInBackgroundWithPassword:@"Passw0rd" block:^(NBUser *user, NSError *error) {
    if (!error) {
        NSLog(@"Success");
    } else {
        NSLog(@"Error %@", error);
    }
}];

まずはじめに NBUser のインスタンスを生成します。 NBUser の username, email プロパティにそれぞれユーザ名, E-mail アドレスをセットしておきます。

サインアップは signUpInBackgroundWithPassword:block: で行います。 引数としてパスワードとブロックを指定します。登録が完了するとブロックが呼び出されます。

5.2. ログイン

ログインには NBUser の logInInBackgroundWithUsername:email:password:block を使用します。

[NBUser logInInBackgroundWithUsername:username email:email password:password block:^(NBUser *user, NSError *error) {
    if (!error) {
        NSLog(@"Login success");
    } else {
        NSLog(@"Login error : %@", error);
    }
}];

username と email にはどちらか一方のみを指定し (指定しないほうは nil にしてください)、 passsword とブロックを指定して呼び出します。処理が完了するとブロックが呼び出されます。

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

5.3. ログイン状態の取得

ユーザがログイン状態かどうかは NBUser の loggedIn で確認できます。

if ([NBUser loggedIn]) {
    NSLog(@"ログイン中");
} else {
    NSLog(@"未ログイン");
}

また、ログイン中のユーザは currentUser で取得できます。

NBUser *user = [NBUser currentUser];
NSLog(@"user id = %@", user.userId);
NSLog(@"username = %@", user.username);
NSLog(@"email = %@", user.email);

5.4. ログアウト

ログアウトは logOutInBackgroundWithBlock: で行います。

[NBUser logOutInBackgroundWithBlock:^(NBUser *user, NSError *error) {
    NSLog(@"Logged out");
}];

5.5. パスワードリセット

パスワードリセットは resetPasswordInBackgroundWithUsername:email:block: で行います。 username と email はいずれか一方を指定します。

[NBUser resetPasswordInBackgroundWithUsername:username email:email block:^(NSError *error) {
    if (!error) {
        NSLog(@"パスワードリセットメールを送信しました");
    } else {
        NSLog(@"Error %@", error);
    }
}];