将Google AppEngine与胖客户端集成

我想制作一个多用户客户端 – 服务器解决方案,其中Java Swing胖客户端作为前端,Google AppEngine(Java one)作为后端。

问题是GAE只提供基于Web的登录和注销表单,因此在胖客户端中使用Google帐户function并不是一件容易的事。

您能否就如何允许胖客户端登录和从GAE webapp注销提出一些建议/提示/想法?

客户端应用有一种方法可以针对Google帐户进行身份validation,但我不知道您收到的令牌是否可以传递回AppEngine。 请参阅: 已安装的应用程序的ClientLogin

对不起,我只能间接回答你。 可以使用Google帐户登录appspot.com上的应用。 您只需要完成浏览器的所有操作,包括保留一些cookie并联系多个服务器,因为它们可以反弹。

几个月前,我为一个死产项目玩弄了这个,最后得到了一个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组件(如安装了HTMLEditorKitJEditorPane )并将此组件呈现在您的swing中应用程序 – 至少用户不需要以这种方式在您的应用程序和浏览器之间来回切换。