私はGoogleAppEngineを使用しており、UserServiceクラスを使用してユーザーアカウントとログインを処理しています。ユーザーのアカウントに関する情報にアクセスする必要はありません。ユーザーを区別するために使用しているだけです。
現在、Webサイトはほとんどが単なるバックエンドです。フロントエンドにAndroidアプリを使用しています。AccountManagerを使用してデバイス上のGoogleユーザーアカウントにアクセスできることを知っています。これは間違いなく、ユーザーにログインさせるための最も安全な方法です。そして、私はそれだけの作業を行うことができました。
私が行き詰まっているのは、AndroidアプリからAppEngineWebサイトにログイン情報を渡すことです。準備ができているので、OAuthを使用する必要があります。ここに、Google APIで使用するためのウォークスルーが表示されますが、ログインするだけでAPIにアクセスする必要はありません。認証を取得できました。アプリのトークンですが、それをWebサイトに渡す方法がわかりません。また、それが正しい方向であるかどうかもわかりません。この人のように、サーバーで特定のOAuthログインを使用する必要がありますか?
どんな助けでも大歓迎です!
関連するコードは次のとおりです。
サーバー(GAE):
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
if (user == null) {
resp.sendRedirect(userService.createLoginURL(req.getRequestURI()));
return;
}
クライアント(Android):
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccountsByType("com.google");
Bundle options = new Bundle();
am.getAuthToken(
accounts[0], // Account retrieved using getAccountsByType()
"Manage your tasks", // Auth scope
options, // Authenticator-specific options
this, // Your activity
new OnTokenAcquired(), // Callback called when a token is successfully acquired
new Handler(new OnError()));
//Now what!?