2009-11-06 128 views
3

我想製作一個多用戶客戶端 - 服務器解決方案,其中Java Swing胖客戶端作爲前端,Google AppEngine(Java one)作爲後端。將Google AppEngine與胖客戶端集成

問題是,GAE只提供基於Web的表單登錄和註銷,因此在胖客戶端中使用Google帳戶功能並不是一件簡單的方法。

您能否就如何允許胖客戶端登錄和從GAE webapp註銷提供一些建議/提示/想法?

回答

2

對不起,我只能間接回答你。可以使用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 
+0

我很樂意向任何將此翻譯成Java的人致意! – JasonSmith 2009-11-09 14:09:16

1

正如@Jason DeFontes建議的,ClientLogin授權過程正在解決此問題。您可以將基於Web的(html)表單嵌入到您的胖客戶端,即使用支持html呈現的java組件(如安裝了JEditorPane並且安裝了HTMLEditorKit)並呈現此代碼組件內部的應用程序 - 至少用戶不需要通過這種方式在應用程序和瀏覽器之間來回切換。