Rails で iOS アプリのバックエンドを作成しています。ユーザーは、アプリ固有のユーザー名/パスワードを使用して、または Twitter 経由でアプリにログインできる必要がありますが、Twitter 経由でログインするための設定方法がよくわかりません。
OmniAuth を使用すると、フローは次のようになります。
- iOS アプリは、ユーザーを Safari で、OmniAuth が設定した /auth/twitter ページに誘導します。
- /auth/twitter ページは、OAuth 認証のためにユーザーを Twitter に送信します。
- Twitter はユーザーを /auth/twitter/callback に返し、OmniAuth は情報を満載した認証ハッシュを提供します。
- ????
- iOS アプリには、API を呼び出すときに要求を行っているユーザーを識別するために必要な資格情報が含まれるようになりました
- 認証が完了し、アプリの使用は通常どおり続行されます
設定方法がわからないのは、iOS アプリに認証情報を戻すステップ 4 です。iOS アプリが呼び出す API はすべてステートレスです。認証されたユーザーが必要な場合は、ユーザー資格情報が API 呼び出しに含まれます。私は iOS アプリを書くことについてあまり知りませんし、アプリが Safari とどのように相互作用するかについてもほとんど知りません。
ユーザー資格情報をアプリに戻す安全な方法は何ですか? スヌープできないもの?コールバック ページで情報を Cookie またはセッションに配置した場合、アプリはアクセスできますが、トラフィックを監視しているユーザーはアクセスできませんか?
または、アプリが /auth/twitter への最初の呼び出しに自分自身の識別子を添付する場合、Twitter と OmniAuth はその識別子を保持して、/auth/twitter/callback に含められるようにし、アプリが応答できるようにします。その識別子に関連付けられたばかりの認証の資格情報を終了しますか?