[Swift] Keychain(キーチェーン)

既存のWebベースの会員システムをアプリ(Swift)からログインして利用できないかずっと考えていました。

ガワだけネイティブで、中身はWebにしてしまう方法はアプリ化しなくてもいいような気がしたのとSwift本来の勉強にならない気がしたので、今回はなしにしました。

新規案件ならfirebaseやニフクラなどのmBaaSを使えば手っ取り早くてよさそうですが、既存の会員を扱うとなるとわからなくて困ってました。

いろいろ考えた結果、解決策としてトークン認証にするのがベターかと考えました。

下記は、トークン認証(OAuth)のとてもわかりやすい解説ページです。

トークン認証にも OAuth2 や JWT などの規格があるのですが、今回は単純にAPIでログインが成功したら有効期限付きのワンタイムトークンを返し、そのトークンをアプリ内で保存してログインを維持する方法を試しました。

トークンはセキュアな情報なので、アプリ内での保存はキーチェーンで暗号化して保存しておくようにしました。

アプリの審査時にトークンのような情報はキーチェーンで保存しておかないとリジェクトされるような記事をみかけました。

なお、キーチェーンの扱いは下記ライブラリを使いました。

このライブラリは UserDeafaults と同様な感じでキーチェーンを操作できてわかりやすかったです。

そもそも、試した簡易トークン認証がアプリの審査で通るかわからないというのはあるのですが、とりあえずやりたかったことができました。

今日の積み上げ
キーチェーン



この記事が気に入ったらサポートをしてみませんか?