Question

Je veux faire une solution client-serveur multi-utilisateurs avec Java Swing client lourd comme une extrémité avant et Google AppEngine (Java), comme un back-end.

Le problème est que GAE ne fournit que des formulaires Web pour se connecter et, donc il n'y a aucun moyen trivial d'utiliser des comptes Google fonctionnalités dans un client lourd.

Pouvez-vous donner quelques conseils / conseils / idées sur la façon de permettre une connexion client épaisse et d'une webapp déconnexion GAE?

Était-ce utile?

La solution

Il existe un moyen pour les applications clientes pour authentifient les comptes Google, mais je ne sais pas si le jeton que vous recevez peut être repassée à AppEngine. Voir: ClientLogin pour les applications installées

Autres conseils

Je suis désolé, je ne peux que vous répondre indirectement. Il est possible de se connecter à une application sur appspot.com avec un compte Google. Il suffit de faire tout ce qui serait un navigateur, y compris le maintien des cookies et de contacter plusieurs serveurs comme ils vous rebondissent.

J'ai joué avec cela pour un projet mort-né quelques mois et a fini avec un script shell qui fonctionne la plupart du temps cURL pour se connecter. Peut-être que vous pourriez prendre de ce que vous avez besoin.

#!/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

comme suggéré par le processus DeFontes @ Jason d'autorisation ClientLogin se penche sur cette question.

comme une approche alternative minimale d'effort, vous pourriez intégrer le Web (html) forme dans votre client d'épaisseur, à savoir utiliser un composant Java qui prend en charge HTML-rendu (comme un JEditorPane avec un HTMLEditorKit installé) et de présenter ce composant à l'intérieur de votre application swing -. au moins les utilisateurs aurait pas besoin de revenir-et-vient entre votre application et le navigateur de cette façon

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top