5

現在、Spring MVC と Spring Social を使用して Web サイトをセットアップしているため、ユーザーは Facebook と Twitter でサインインできます。

ここで、Facebook (または Twitter) の資格情報を使用して、サードパーティの Web サイトにアクセスすることを Android クライアントに許可したいと考えています。ここで述べたように、これは可能なはずです。しかし、彼はその方法を言い続けていません。誰でもこれで途中で私を得ることができますか? これを行う方法の基本的な概要を教えてください。私は本当にここで立ち往生しています...

4

1 に答える 1

14

私は実際に同じことをする必要があるプロジェクトに取り組んでいます。Web サイトに Spring Security と Spring Social を実装し、iOS および Android アプリもソーシャル サイト経由で接続できるようにする必要がありました。

必要な作業は次のとおりです。

  1. デバイス固有の API をアプリのプロジェクトの開発に実装します。そのため、デバイスで通常行うように、Facebook や twitter などを実装します。そこで実際の認証プロセスを行います。

  2. アプリがソーシャル サービス経由でサインインするための特別な URL を実装します。たとえば、http://yousiteapi.com/services/auth/socialSigninです。通常は UserConnection テーブルの実装に書き込まれるすべてのパラメーター (providerId、userProviderId、authenticationToken、secret など) をこの API に渡す必要があります。プロバイダーがこれらのいずれも使用しない場合は、null を渡すだけです。または空の変数。

  3. このコントローラー内で、Spring Social SignInAdapter の実装と ConnectionSignUp クラスの両方を ConnectionRepository と UserConnectionRepository の実装と共に参照し、基本的にサインアップ プロセス全体を再現する必要があります。最初に、返された providerId を介してそれがどのプロバイダーであるかを決定し、プロバイダーの consumerKey と consumerSecret を使用して、必要な特定の ConnectionFactory を実装する必要があります。次に、渡したデータを使用して ConnectionData オブジェクトを作成します。ConnectionData オブジェクトを使用して、実際の Connection オブジェクトを作成します。

  4. ここで、通常の Spring Social ログインのロジックを複製します。まず、UserConnectionRepository の参照を使用し、findUserIdsWithConnection() メソッドを呼び出して、ユーザーが以前にログインしたことがあるかどうかを確認します。そうでない場合は、ConnectionSignUp.execute() メソッドを呼び出します。ユーザーを作成します。

  5. 最後に、SignInAdapter.signin() メソッドを呼び出してユーザーをサインインさせます。これが成功したことをアプリが認識できるように、応答を OK に設定することを忘れないでください。

うわー、それはたくさんのように聞こえます。実際にはそれ以上のように聞こえます。これが少なくともあなたを正しい方向に向けるのに役立つことを願っています.

于 2013-03-20T13:23:49.500 に答える