LoginSignup
23
23

More than 5 years have passed since last update.

Parseを触ってみた(iOS-1) - ユーザ管理 -

Last updated at Posted at 2015-02-22

MBaaSの有名どころであるParseを触ってみた。
色々と出来るのだけども、今回はその中からユーザ管理(の一部)についてまとめてみた。

MBaaSってなに?

スマートフォンアプリの開発に必要な汎用的機能をAPI、SDKで提供しサーバー側のコードを書くことなく、サーバー連携するスマートフォンアプリを効率よく開発出来るようにするクラウドサービス

http://mb.cloud.nifty.com/about.htm

Parseってなに?

2013年にFacebookに買収されたことでも有名になったサービス。
2014年12月には技術ドキュメントを日本語化し提供もしている。

機能的としては、「データ管理」、「Push通知」、「Analytics」などがある。

値段は?

30 APIリクエスト/秒までは無料。

詳細は以下の参考ページを見ると詳しく載っている。
参考:http://dev.classmethod.jp/smartphone/parse-new-pricing/

ユーザ管理

今回述べるのは以下の機能ついて

  • ユーザの作成
    • メール認証
  • ログイン/ログアウト
  • パスワードの再設定

上記以外にも、以下の様な機能があるけど今回は割愛。

  • ロール
  • Facebook連携
  • Twitter連携

環境

Podfile
platform :ios, "7.0"

target "parse" do
    pod 'Parse', '~> 1.6'
end

initialize

最初に以下を呼び出しておく必要がある。
AppDelegateのapplication:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptionsで呼んでおくといい。

サンプルコード
 [Parse setApplicationId:@"あなたのApplication ID" clientKey:@"Client Key"];

Parseで登録したアプリのSettings -> KeysにあるApplication IDとClient Keyを設定する。

ユーザの作成

コードとしては、以下だけでユーザを作成してくれる。

サンプルコード
PFUser *user  = [PFUser user];
user.username = @"my name";
user.password = @"my pass";
user.email    = @"email@example.com"; //optional

//上記以外に自身で以下のように追加することも可能
user[@"phone"] = @"650-555-0000";

[user signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
    if (!error) {
        //ユーザの作成に成功
    } else {
        NSString *errorString = [error userInfo][@"error"];
        //アプリの作成に失敗
        //エラー内容を見れば理由がだいたい分かる。
    }
}];
  • usernameとpasswordは必須。
  • emailはオプション。
  • 上記3種類以外に追加したい場合は、自身で追加することも可能。

作成するとParseの管理画面に以下の様にUserという項目が出来る。
スクリーンショット 2015-02-22 21.25.27.png

Parseの管理画面からは、ユーザの削除や情報の編集ができる。

スクリーンショット 2015-02-22 21.34.10.png

メール認証

ユーザが登録したメールアドレスが正しいかどうかのメール認証をおこなうのもすごい簡単。

  1. Parseの管理画面(Settings -> Email)で「Verify user emails」をYESに設定する。
  2. ユーザ作成時にemailを設定するようにする。
    • この状態でユーザが作成されるが「emailVerified」がfalseの状態。
  3. 2で指定したemailに確認メールが届く。
    • 受信したメール本文にあるリンクをクリックすると「emailVerified」がtrueになる。

スクリーンショット 2015-03-07 16.06.41.png

エラー

エラーが出るのは以下の様なとき

  • すでに同じ名前のusernameが登録されている。
    • username xxxx already taken
  • すでに同じ名前のemailが登録されている。
    • the email address xxx@xxx has already been taken
  • emailが正しくない。
    • invalid email address

ログイン/ログアウト

ログイン

ログインは以下で行うことが出来る。

サンプルコード
[PFUser logInWithUsernameInBackground:@"my name" password:@"my pass"
                                block:^(PFUser *user, NSError *error) {
                                    if (user) {
                                        //ユーザのログインに成功
                                    } else {
                                        //ユーザのログインに失敗
                                    }
                                }];

ログインしている状況であれば、以下の様に[PFUser currentUser]を呼ぶだけでユーザ情報が取得出来る。

サンプルコード
PFUser *currentUser = [PFUser currentUser];
if (currentUser) {
  //ログイン中
} else {
  //ログインしていない
}

ログアウト

ログアウトは以下の1行のみ。
ログアウトをすると、[PFUser currentUser]はnilを返す。

サンプルコード
[PFUser logOut]; //ログアウト
PFUser *currentUser = [PFUser currentUser]; //nilが返ってくる。

パスワードの再設定

パスワードの再設定についても簡単に実装出来る。

サンプルコード
[PFUser requestPasswordResetForEmailInBackground:@"email@example.com"];

流れとしては以下。

  • ユーザがアカウント作成時に登録したメールアドレスを指定する。
    • 上記のコード
  • 指定したメール宛てにパスワードの再設定のメールが届く。
    • メールの文面は自身でカスタマイズすることが出来る。
  • ユーザがメールに書かれている再設定のリンクをクリックし、パスワードを入力する。

自分で実装すると面倒なこのフローをたった1行で実装することが出来る。

最後に

上記のように簡単にユーザ管理周りの実装をすることが出来る。
他にもPush通知やデータ管理が簡単に扱えるので、個人開発であればParseで十分なのではないかなと思う。

参考

23
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
23