La integración de Google AppEngine con una Gruesa Cliente
-
18-09-2019 - |
Pregunta
Quiero hacer un multi-usuario de la solución cliente-servidor con Java Swing de espesor cliente como un front-end y Google AppEngine (Java uno) como un back-end.
El problema es que GAE sólo proporciona formularios basados en la web para entrar y salir, así que no hay forma trivial emplear Cuentas de Google cuenta en un cliente pesado.
Puede dar algunos consejos/sugerencias/ideas acerca de cómo permitir que un cliente pesado de inicio de sesión y cierre de sesión en un GAE webapp?
Solución
Hay una manera para aplicaciones de cliente para autenticar contra las Cuentas de Google, pero no sé si el token de que usted reciba puede pasar AppEngine.Ver: ClientLogin de las Aplicaciones Instaladas
Otros consejos
Lo siento, sólo puedo responder de forma indirecta.Es posible iniciar sesión en una aplicación en appspot.com con una cuenta de Google.Sólo tienes que hacer todo lo que un navegador, incluyendo el mantener algunas de las cookies y ponerse en contacto con varios servidores como rebotan alrededor.
He jugado con esto por un muerto proyecto hace un par de meses y terminó con un script de shell que se ejecuta en su mayoría cURL para iniciar la sesión.Tal vez usted podría tomar de ella lo que necesita.
#!/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
según lo sugerido por @Jason DeFontes la ClientLogin proceso de autorización está abordando esta cuestión.
como un mínimo de esfuerzo enfoque alternativo, se podía integrar con base en la web (html) formas en su espesor cliente, es decir,el uso de un componente java que soporta html de representación (como un JEditorPane
con un HTMLEditorKit
instalado) y el presente de este componente dentro de su swing de la aplicación-por lo menos los usuarios no necesitan cambiar de ida y vuelta entre su aplicación y el navegador de esta manera.