メールアドレス/パスワードでログインする機能を加える

ツイート このエントリーをはてなブックマークに追加
1つ上へ / ブログトップへ

今回は、ログイン画面を作り、アプリユーザーがKii Cloud上のアプリにメールアドレスとパスワードでログインできるようにします。

実装例はここにあります。login_signupブランチをチェックアウトし、Constants.javaのAppId/AppKeyを置き換えて動かしてみてください。

ログイン画面を作る

メールアドレスとパスワードの入力欄(EditText)と、ログインボタンを配置します。

KiiLib-Android-VolleyのAPIインスタンスを作る

FragmentのonCreate()あたりでインスタンスを作成します。引数にVolleyのRequestQueueが必要なので、ついでに作成します。

private RequestQueue mQueue;
private AppAPI mAppApi;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mQueue = Volley.newRequestQueue(getActivity());
    mAppApi = new KiiVolleyAPI(mQueue, Constants.APP_ID, Constants.APP_KEY, Constants.BASE_URL);
}

ログインボタンを押した時の処理を実装する

画面から入力されたメールアドレス/パスワードを取得し、AppAPI#loginAsUser(email, password, callback)を呼びます。Volleyなので非同期呼び出しです。Kii Cloudから結果を受け取ったら、callbackのメソッドが呼ばれます。

成功時はアクセストークンと、ユーザーが引数で渡されます。自動ログインを実装したい場合は、このトークンをSharedPreferencesなどに保存しておきます。(暗号化しておいたほうがやや安全)

また、この時点で、mAppApiにアクセストークンがセットされるので、これ以降のAPI呼び出しはログインしたユーザーの権限で行われます。

mAppApi.loginAsUser(email, password, new AppAPI.LoginCallback() {
  @Override
  public void onSuccess(String token, KiiUser user) {
    ui.hideProgress();
    ui.showToast("Login is succeeded!");
  }

  @Override
  public void onError(int status, String body) {
    ui.hideProgress();
    ui.showToast("Login is failed status=" + status);
  }
});

ログインする機能だけあっても、ユーザー登録する方法がなければどうしようもないので、次回はユーザー登録機能をアプリに実装してみます。

1つ上へ / ブログトップへ