混乱しています。
モバイルアプリケーション用のJavaサーバーアプリケーションを作成する必要があります。そのアプリケーションには独自のユーザー管理があります。つまり、ユーザーはOAuthプロバイダーをまったく使用せずにサーバーに登録してログインできます。
ここで、ユーザーがOAuthプロバイダーを介して交互に登録できるようにしたいと思います。
これらは私が見るオプションです:
ユーザーにローカルのみを登録させます。
アドバンテージ:
- モバイルアプリケーションは、ログインしてアプリケーションのアクセストークンを取得できるフレームワークを使用できます
- すべてがプラットフォーム自体によって事前にスタイル設定されているため、その上でGUIは機能しません
不利益:
- サーバーは、ユーザーがログインしているかどうかをどのように認識しますか?これを理解する1つの方法は、アクセストークンをサーバーに送信し、サーバーにプロバイダーへの要求を開始させて、トークンが有効かどうかを確認することです。
- 登録のために、クライアントがプロバイダーから取得したすべてのユーザー情報をサーバーに送信する必要があります。
私はこのオプションが好きではありません。UserdataとAccesstokenを周りに送信するからです。はい、もちろんhttps経由で暗号化されますが、気分が悪いだけです。
ユーザーにサーバー経由で登録させます
ユーザーは、OAuthプロバイダー自体に、アクセストークンを要求できるコードを取得するように要求します。このコードをサーバーに送信し、サーバーにアクセストークンを取得させます。
アドバンテージ:
- サーバーは、ユーザーがログインしていることを確認できます
- サーバーは、アラウンドを送信せずに、ユーザーに関するすべてのユーザー固有の情報(ユーザー名など)をOAuthプロバイダー自体から取得できます。
- ログイン時にこれを繰り返して、ユーザーが正しくログインしていることを確認できます
不利益:
- OAuthコネクタを作成する必要があります(またはそのためのライブラリを使用します)
- 実際のアクセストークンを返すだけなので、SDKを使用することはできません。
私たちはまだ最初のオプションを好みます(ローカルのみ登録)
- 彼らはSDKを使いたいのです。「誰もがそれをするからです。」
- ユーザーが初めてアプリケーションを起動し、すでにログインしている場合(つまり、FBクライアントを使用して)、スコープを受け入れるだけで、アプリケーション用にセットアップしました。
- 実際のログインの処理が簡単になり、SDKが作成された場所に配置されます
誰かがそのようなことを正しく行う方法を知っていますか?どちらの解決策も私には少し間違っているようです。