1

Android アプリケーションから Google バズ、連絡先の認証を取得しようとしています。流れはこれに似ています。

  • ユーザーは、Buzz を使用するかどうかを選択します。
  • OAuth/Client Auth を使用して、ワンタイム認証コードを取得する必要があります。
  • このコードは、Buzz フィードを定期的に読み取るために Web サービスによって使用されます。

さて、問題は、Android アプリから認証コード (一時的なトークンではない) を取得し、それを Web サービスに送信する方法です。通常の OAuth2.0 を使用し、Web サービスをリダイレクト URL として使用してコードを取得できます。しかし、その場合、コードがどのユーザーに関係するかを Web サービスに知らせるにはどうすればよいでしょうか? OAuthダンスで追加情報を渡すことはできますか?

4

1 に答える 1

1

OAuth 2を使用することを強くお勧めします。フローはエンドユーザーにとってはるかに優れており、このようなものを実装する方がはるかに簡単です。さらに、ベアラートークンを使用します。つまり、更新トークンサーバー側を実際に安全な場所に維持し、必要な場合にのみアクセストークンをAndroidに送信できます。

このアプローチの欠点は、アプリが読み込まれるたびに、最新のアクセストークンを取得するために自宅に電話する必要があることです。ただし、そのアクセストークンを取得すると、必要なAPI呼び出しを、BuzzおよびContactsAPIに直接行うことができます。

ただし、これを行うには、OAuthダンスで追加情報を渡さないでください。代わりに、Androidアプリは、アプリでサインインしているユーザーをすでに安全に識別している必要があります。次に、サーバーが認証されたユーザーに関連付けられたアクセストークンのみを返送するようにします。そのユーザーの最新のアクセストークンがない場合は、Googleの認証サーバーにリクエストを送信して、最新のアクセストークンを取得してから、クライアントに渡す必要があります。したがって、通常は同期呼び出しである必要があるため、遅延が発生する可能性は確かにありますが、OAuth2がOAuth1よりも優れている点を支払うには、通常、少額の費用がかかります。

于 2011-06-21T13:06:40.463 に答える