簡體   English   中英

使用Android AccountManager通過UserService進行AppEngine登錄

[英]Use Android AccountManager to do AppEngine login through UserService

我正在使用Google AppEngine,我正在使用他們的UserService類處理用戶帳戶並登錄。我不需要訪問有關其帳戶的任何信息 - 我只是用它來區分用戶。

現在該網站主要只是一個后端。 我正在使用Android應用程序作為前端。 我知道您可以使用AccountManager訪問設備上的Google用戶帳戶。 這絕對是讓用戶登錄的最安全的方式。而且我還有很多工作要做。

我遇到的問題是將登錄信息從Android應用程序傳遞到AppEngine網站。 根據我的准備,我應該使用OAuth,我在這里看到了使用Google API的演練,但我不需要訪問API,只需登錄。我已經能夠獲得身份驗證在應用程序中的令牌,但我不知道如何將其傳遞到網站,或者如果這是正確的方向。 我應該在服務器上使用特定的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!?

這篇博文完全涵蓋了我的需求。

對於兩個備用(並且在我看來不太理想)的解決方案,請查看此主題: Webservice憑證 - OpenID / Android AccountManager?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM