2013-01-15 13 views
5

私はユーザがTwitterアカウントを使用して自分のGWT/GAEアプリケーションを認証できるように、Scribe(OAuth1.0)を使用しています。Twitterが承認を覚えていない

https://dev.twitter.com/docs/auth/implementing-sign-twitterによると、次の3つのシナリオが考えられます。 a /ユーザーがサインインされ承認されています。この場合は、ツイッターをtransparantly戻って私のアプリケーションのURLにユーザーをリダイレクトする必要があり、 B /ユーザーはに署名ではなく、承認、Twitterのは、私のアプリケーション(コールバックに戻って来るとき C /ユーザーは

に署名されていませんさ)、私は私のアプリケーションでユーザーを判断するために使用するtwitterからユーザーデータを読み取るためにverifierパラメーターを使用します。

このすべては、以下を除いて正常に動作します:

シナリオ/私のために働いていません。ユーザーが私のアプリケーションに自分のユーザーデータを読み込ませる権限をすでに与えているにもかかわらず、Twitterはこれを覚えていないようだが、再度アクセスを許可するように頼んでいる。 (シナリオb /)。

+0

私は解決策を持っていることがあります。私は、アクセストークンを構築し、クッキーにこれを保存するために、コールバックパラメータを使用することができます。私はアクセストークンは永久だと思う。その後、ユーザーがTwitterを使用してサインインしようとすると、アプリケーションはCookieからのアクセストークンを使用します。 – peternees

答えて

9

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

  1. は、このアプリケーションがチェックされているTwitterの設定でログインするために使用されることを許可することを確認:あなたは2つのことが必要認証するために、これを変更する - スクリーブで

    は、デフォルトではを認可ですあなたのTwitterアプリケーション設定ページで。お使いのアプリケーションで

  2. - あなたが使用するスクライブAPIクラスを指定する - 代わりのorg.scribe.builder.api.TwitterApi.Authenticate.class

にこのorg.scribe.builder.api.TwitterApi.class変化を利用して、彼らが持っている場合今、あなたのアプリケーションは、サインインする/oauth/authenticateエンドポイントにユーザーに指示してますあなたのアプリケーションを少なくとも1回は承認しました。彼らはちょうど通過するでしょう。

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

関連する問題