QA@IT

device tokenとユーザ情報の紐付け

4918 PV

iphoneアプリにて、プッシュ通知を実現しようとしております。

流れとしましては、

まず、ユーザが、アプリインストール時にpush通知の可否を尋ねられ、許可すると、アプリ側でdevice tokenを獲得でき、DBサーバー(php)にtoken情報を送り、token情報を格納します。

その後、ユーザがアプリの新規会員登録画面で会員登録(氏名や電話番号、Emailアドレス等)をし、登録情報がDBに格納される仕組みにしようとしているのですが、上記のtoken情報と会員登録情報をどのように紐づけたら良いのか分からずに困っております。

最も簡潔な方法について教えて頂けませんでしょうか。

回答

一般的なのは、まずサーバで生成したUUIDを取得してローカルに保存し(最初の一度のみ)、以後はずっとそのUUIDをユーザ認証のキーとし、そのUUIDに紐づけてデバイストークンやユーザ情報を保存することです。(端末が変わってもバックアップからの復元で移行される、紛失したデバイスの無効化やアンインストール後の扱いなど考慮すべき点はありますが)

もう一つは、UUIDではなく

[UIDevice currentDevice].identifierForVendor

でデバイスのユニークなIDをとり、これをUUID代わりに使うことです。これは、UUIDよりスコープが広く、紛失のリスクが低く、同じ開発者の複数のアプリでデバイスIDを共通化できつという特性があります。強力ですが、そのかわり、これはあくまでデバイスのIDであって、ユーザ自身とは異なるので、この場合にはユーザが複数デバイスを持つケースを必ず考慮する必要があるので、設計の複雑性は増します。

編集 履歴 (2)
ウォッチ

この質問への回答やコメントをメールでお知らせします。