我想製作一個多用戶客戶端 - 服務器解決方案,其中Java Swing胖客戶端作爲前端,Google AppEngine(Java one)作爲後端。將Google AppEngine與胖客戶端集成
問題是,GAE只提供基於Web的表單登錄和註銷,因此在胖客戶端中使用Google帳戶功能並不是一件簡單的方法。
您能否就如何允許胖客戶端登錄和從GAE webapp註銷提供一些建議/提示/想法?
我想製作一個多用戶客戶端 - 服務器解決方案,其中Java Swing胖客戶端作爲前端,Google AppEngine(Java one)作爲後端。將Google AppEngine與胖客戶端集成
問題是,GAE只提供基於Web的表單登錄和註銷,因此在胖客戶端中使用Google帳戶功能並不是一件簡單的方法。
您能否就如何允許胖客戶端登錄和從GAE webapp註銷提供一些建議/提示/想法?
客戶端應用程序可以通過Google帳戶進行身份驗證,但我不知道您收到的令牌是否可以傳回給AppEngine。請參閱:ClientLogin for Installed Applications
對不起,我只能間接回答你。可以使用Google帳戶登錄appspot.com上的應用程序。你只需要做一切瀏覽器就可以做到,包括保留一些cookies和聯繫幾臺服務器,因爲它們會讓你四處奔波。
幾個月前,我在一個死胎項目中玩過這個遊戲,最後是一個shell腳本,主要運行cURL登錄。也許你可以從中獲得你需要的東西。
#!/bin/bash
my_app="set-this-to-my-app-id"
url="http://$my_app.appspot.com"
curl='curl --cookie-jar cookies'
if [ -z "$EMAIL" -o -z "$PASS" ]; then
echo -n 'Email: '
read EMAIL
echo -n 'Pass: '
read PASS
fi
rm -f cookies auth
echo 'Login'
$curl https://www.google.com/accounts/ClientLogin --output auth \
-d "Email=$EMAIL" -d "Passwd=$PASS" \
-d accountType=HOSTED_OR_GOOGLE \
-d source=$my_app \
-d service=ah
. auth # XXX Be careful here. The output of the above
# command happens to be Bash syntax too!
rm -f auth
echo 'Logging into app and getting cookie'
$curl "$url/_ah/login?continue=$url/console/&auth=$Auth"
echo
echo 'Example POST query'
$curl -X POST --cookie cookies "$url/some/path" -d 'foo=bar'
echo
rm -f cookies
正如@Jason DeFontes建議的,ClientLogin授權過程正在解決此問題。您可以將基於Web的(html)表單嵌入到您的胖客戶端,即使用支持html呈現的java組件(如安裝了JEditorPane
並且安裝了HTMLEditorKit
)並呈現此代碼組件內部的應用程序 - 至少用戶不需要通過這種方式在應用程序和瀏覽器之間來回切換。
我很樂意向任何將此翻譯成Java的人致意! – JasonSmith 2009-11-09 14:09:16