サーバー構築不要!スマートフォンアプリ向けの新クラウド

トップ >ドキュメント >会員管理・認証(Kotlin):基本的な使い方

会員管理・認証(Kotlin)

基本的な使い方

概要

ニフクラ mobile backend での会員の認証方法は以下の4種類です。

  • ID・パスワード認証
  • メールアドレス・パスワード認証(Kotlin SDK 未対応)
  • SNSアカウントでの認証(Kotlin SDK 未対応)
  • 匿名認証(Kotlin SDK 未対応)

このページでは、ID・パスワード認証の方法について説明していきます。

アプリでの実装

会員の新規登録

User のインスタンスを作成後、userName と password を設定して signUp メソッドで登録処理を行います。

// Userインスタンスの生成
var user = NCMBUser()
// ユーザー名・パスワードを設定
user.userName = "takanokun"
user.password = "openGoma"
// ユーザーの新規登録
try {
    user.signUp()
    // 新規登録に成功した場合の処理
    println("新規登録に成功しました : " + user.getObjectId())
}
catch(e:NCMBException){
    // 新規登録に失敗した場合の処理
    println("新規登録に失敗しました : " + e.message)
}

非同期処理の場合はsignUpInBackgroundメソッドで登録処理を行います。

// Userインスタンスの生成
var user = NCMBUser()
// ユーザー名・パスワードを設定
user.userName = "takanokun"
user.password = "openGoma"
//新規会員登録
user.signUpInBackground(NCMBCallback { e, signUpUser ->
    if (e != null) {
        //エラー時の処理
        println("新規登録に失敗しました。エラー : " + e.message)
    } else {
        //成功時の処理
        println("ユーザー情報登録に成功しました場合 : " + (signUpUser as NCMBUser).getObjectId())
    }
})

ログイン

新規登録が完了すると、ログインができるようになります。
ログインは login メソッドを用います。引数にはユーザー情報をユーザ名とパスワードで設定可能です。

// Userインスタンスの生成
var user = NCMBUser()
//ユーザー名・パスワードを設定
user.userName = "takanokun" /* ユーザー名 */
user.password = "openGoma" /* パスワード */
try{
    // ユーザー名とパスワードでログイン
    user.login()
    // ログインに成功した場合の処理
    Log.d("success","ログインに成功しました")
}
catch(e:NCMBException){
    // ログインに失敗した場合の処理
    Log.d("failure","ログインに失敗しました : " + e.message)
}

また、ログインすることでログインしたユーザーは カレントユーザー として設定されます。カレントユーザーの権限(ACL)で該当ユーザーがアクセス許可されたオブジェクトやクラスにアクセスできるようになります。

参考:データストア(Kotlin):アクセス権限設定

セッショントークン

ログインすると セッショントークン が発行されます。通信時に利用されるセッショントークンは、カレントユーザー に設定されているものです。ログアウトすることで セッショントークン を無効にし、ログイン状態を終了します。

  • セッショントークン の有効期限は通常24時間です
  • 有効期限切れの セッショントークン では通信できません
  • セッショントークン の有効期限は管理画面にて変更可能です

カレントユーザー

ログイン中のユーザーは カレントユーザー として設定されます。 getCurrentUser メソッドを用いることで、現在カレントユーザーに設定されているユーザ情報を取得することができます。
また、画面遷移などによって保持していた セッショントークン情報 が失われた場合にも、
getCurrentUser を実行することで、ローカルに保存されているカレントユーザー情報から
セッショントークン を設定をし直すことができます。

// カレントユーザー情報の取得
val currentUser: NCMBUser = NCMBUser().getCurrentUser()
if (currentUser.getObjectId() != null) {
    Log.d("Debug","ログイン中のユーザー: " + currentUser.userName)
} else {
    Log.d("Debug","未ログインまたは取得に失敗")
}

ログアウト

ログアウトは logout メソッドを利用します。ログアウトが正常に実施されることで、カレントユーザー情報がクリアされます。

// Userインスタンスの生成
var user = NCMBUser()
// ログアウト
try{
    // ログアウト
    user.logout()
    // ログアウトに成功した場合の処理
    Log.d("success","ログアウトに成功しました")
}
catch(e:NCMBException){
    // 新規登録に失敗した場合の処理
    Log.d("failure","ログアウトに失敗しました : " + e.message)
}

会員の削除

会員の削除は deleteInBackground プロパティを利用します。会員を削除することで、会員管理に保存されているデータが物理削除されます。

val currentUser: NCMBUser = NCMBUser().getCurrentUser()
if (currentUser.getObjectId() != null) {
    currentUser.deleteInBackground(NCMBCallback { e, ncmbObj ->
        if (e != null) {
            Log.d("failure", "削除に失敗しました : " + e.message)
        }
        else {
            Log.d("success", "退会しました")
        }
    })
}

※2022年6月30日以降、App Store Review ガイドライン 5.1.1において、アカウント作成に対応しているすべてのAppを対象に、App内でアカウントを削除できるようにしなければならないという要件が追加されました。詳細はこちら

管理画面での操作

会員の追加と編集を行う

新しい会員ボタンをクリックして、新しい会員の新規作成を選択します。
会員の新規作成

作成した会員の情報はブラウザーからも編集可能です。
会員情報の編集
会員の名前を編集し、エンターキーをクリックすることで、以下のように保存されました。
会員情報の保存

会員を削除する

レコードの左側にあるチェックボックスを選択し、削除ボタンをクリックすると会員を削除してもいいかを確認する画面が開きます。

削除ボタンをクリックすると、会員が削除されます。

フィールドを追加する

1.新しいフィールドボタンをクリックすると作成画面が表示されます。

2.フィールド名を入力すると新しくフィールドが作成されます。

フィールドを削除する

1.画面右上のクラスの編集ボタンを選択します。

2.チェックボックスを選択し削除ボタンをクリックします。

3.確認が画面が表示され削除ボタンでフィールドが削除されます。

会員認証の方法を設定する

アプリ設定の会員認証設定を開くと、ID・パスワード認証やメールアドレス・パスワード認証の設定を行うことができます。
なお、メールアドレス・パスワード認証は、Kotlin SDK 未対応となります。

二つの認証方法は、下記画像のように両方有効にすることも可能です。

お探しの内容が見つからなかった場合はユーザーコミュニティ もご活用ください。(回答保証はいたしかねます)
なお、 Expertプラン以上のお客様はテクニカルサポートにてご質問を承らせて頂きます。

推奨画面サイズ1024×768px以上

ページの先頭へ