2009-11-06 133 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)并呈现此代码组件内部的应用程序 - 至少用户不需要通过这种方式在应用程序和浏览器之间来回切换。

相关问题