Parseを使ってiPhoneアプリでユーザー登録&ログインを実現する
クラウドサービスのParseを使って、簡単にiPhoneアプリの会員登録とログインを実現してみようと思います。
初期設定
先日書いた記事を参考にParse上にアプリケーションを作成してAppIdとClientKeyを取得します。
取得したキーを使ってAppDelegateでParseの初期化処理をします。
import UIKit import Parse import Bolts @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { Parse.enableLocalDatastore() // Initialize Parse. Parse.setApplicationId("APP_ID", clientKey: "CLIENT_KEY") // [Optional] Track statistics around application opens. PFAnalytics.trackAppOpenedWithLaunchOptions(launchOptions) return true } }
会員登録
ユーザー認証にはPFUserというクラスを使います。
会員登録したい場合はPFUserに値を入れてsignUpInBackgroundWithBlockメソッドを呼び出します。
import UIKit import Parse class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let user = PFUser() user.email = "test@test.com" user.username = "username" user.password = "password" user.signUpInBackgroundWithBlock { _ in print("sign up") } } }
Parseを見るとユーザーテーブルが作られている事が分かります。
Roleというテーブルも自動で作られている事を見るとユーザーの権限付与も簡単にできそうです。
そのユーザーに紐づくデータを作りたい場合はオブジェクトのプロパティーにユーザーをセットします。
let testObject = PFObject(className: "TestObject") testObject["user"] = PFUser.currentUser() testObject.saveInBackgroundWithBlock { (success: Bool, error: NSError?) -> Void in print("Object has been saved.") }
そのユーザーに紐づくデータを取得したい場合はqueryの条件にcurrentUserをセットします。
let query = PFQuery(className: "TestObject") query.whereKey("user", containedIn: [PFUser.currentUser()!]) let objects = try? query.findObjects() print(objects)