4

私は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!?
4

1 に答える 1

3

このブログ投稿は、私が必要なものを正確にカバーしていました。

2つの代替(そして私の意見では理想的とは言えない)ソリューションについては、次のスレッドをチェックしてください: Webサービスの資格情報-OpenID / Android AccountManager?

于 2012-12-17T17:42:57.123 に答える