私はグーグルとツイッターでのログインにScribeを使用しています。それはうまく機能しますが、ユーザーがすでに受け入れている場合は、ユーザーの介入なしにアプリケーションが直接接続できるようにしたいと思います。
Scribeで可能ですか?はいの場合、どうすればそれを行うことができますか?
はい。Twitterの認証URLの次の値を使用します。
Scribe scribe = new ServiceBuilder()
.provider(org.scribe.builder.api.TwitterApi.class)
.apiKey(...)
.apiSecret(...)
.callback(...);
Token requestToken = scribe.getRequestToken();
String authorizationUrl = "https://twitter.com/oauth/authenticate?oauth_token="
+ requestToken.getToken();
// and redirect user to the authorization URL
// twitter will redirect it back to the callback URL if
// the user has already been authorized your app.
はい。access_token
およびをどこにでも(db、Key-Valueストレージ、セッションなど)保存access_token_secret
して、有効期限が切れるまで使用できます(ほとんどのプロバイダーで長寿命です)。
これが呼ばれていると仮定すると、ユーザーを識別する方法があると思います。これは、次のような永続的なメディア(セッションではない)にuser_id
保存します。
user_id
access_token
access_token_secret
次に、メディアからトークンとシークレットをフェッチし、次のコマンドでトークンを再作成します。
new Token(access_token, access_token_secret);