モバイル アプリケーション用の RESTful API を開発する必要があり、それらの部分間の通信の流れについて懸念があります。モバイル デバイスと OAuth の API 開発は初めてです。
共通のプロジェクトは次のように機能するはずです。
- ユーザーは自分の Google アカウントのみを使用してログインできます
- モバイル アプリケーションは Web サイト API を使用し、すべての情報はバックエンドに保存されます。
ここで同様の質問を見つけましたOAuth on REST API for mobile appからの最初のソリューションを好みますが、このソリューションのセキュリティについていくつか質問があります。
1) API に OAuth2 を使用する必要がありますか? ユーザーのデータを取得するために、ユーザーの Google ID を API に送信するだけが良い考えかどうかはわかりません。
2) Google ID が正しく、実際のものであることをサーバーで確認するにはどうすればよいですか? それとも全然重要じゃない?
私はこのシナリオについて考えていますが、それが最善の解決策であるかどうかはわかりません:
1) ユーザーは、Google アカウントを使用して初めてモバイル アプリケーションにログインします。
2) モバイル アプリケーションは、Google ID といくつかの追加情報を受け取ります。
3) モバイル アプリケーションが Google ID をサーバーに送信します。
4) サーバーは OAuth2 を使用します。ユーザーのアカウントを作成し (Google ID をデータベースに保存)、モバイル アプリケーションにアクセス トークンを返します。
5) モバイル アプリケーションはアクセス トークンをローカルに保存し、それをサーバーへの要求に使用します。アクセス トークンの有効期限が切れると、ユーザーは Google アカウントを使用してモバイル アプリケーションに再度ログインする必要があります。
トークンの生成に Google ID のみを使用することに懸念があります。つまり、誰でも誰かの Google ID を使用してトークンを作成できます。悪いアイデア :(
また、トークンとして JWT をより適切に使用する必要がありますか?
ご協力いただきありがとうございます!