[英]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.