5

ユーザーが自分のTwitterアカウントを使用してGWT/GAEアプリケーションへの認証を行えるように、メカニズムとしてScribe(OAuth1.0)を使用しています。

https://dev.twitter.com/docs/auth/implementing-sign-twitterによると、3つのシナリオが考えられます。a/ユーザーがサインインして承認されている。この場合、Twitterはユーザーを透過的にアプリケーションのURLにリダイレクトするか、b /ユーザーがサインインしているが認証されていないか、c/ユーザーがサインインしていない必要があります。

Twitterがアプリケーションに戻ってきたら(コールバック)、verifierパラメーターを使用してTwitterからユーザーデータを読み取ります。これを使用して、アプリケーションのユーザーを判別します。

以下を除いて、これはすべて正常に機能します。

シナリオa/が機能していません。ユーザーがすでに私のアプリケーションにユーザーデータの読み取りを許可しているにもかかわらず、Twitterはこれを覚えていないようで、アクセスを許可するように再度要求します。(シナリオb /)。

4

1 に答える 1

10

OAuthトークンを要求するアプリケーションに対してTwitterが提供する2つのURLがあります: /oauth/authenticate/oauth/authorizeアプリケーションがユーザーを承認エンドポイントに誘導する場合-Twitterは、ユーザーがログインするたびにアプリケーションを承認するようにユーザーに要求します。認証エンドポイントは一度認証を要求し、その後Twitterへのログインはアプリケーションコールバックにシームレスにパススルーします。これは、より伝統的に「Twitterアカウントでサインインする」として知られています。

Scribeでは、デフォルトはauthorizeです。これを認証に変更するには、次の2つが必要です。

  1. Twitterアプリケーション設定ページで[このアプリケーションを使用したTwitterでのサインインを許可する ]設定がオンになっていることを確認します。
  2. アプリケーションで-使用するScribeAPIクラスを指定する場合-を使用する代わりに、org.scribe.builder.api.TwitterApi.classこれを次のように変更しますorg.scribe.builder.api.TwitterApi.Authenticate.class

これで、アプリケーションはユーザーにエンドポイントにサインインするように指示し、ユーザーが/oauth/authenticateアプリケーションを少なくとも1回承認した場合は、パススルーされるだけです。

編集: 追加のドキュメント-https: //dev.twitter.com/docs/api/1.1#102

于 2013-06-06T18:29:03.383 に答える