2012-06-11 2 views
1

Actuellement, j'ai une application GWT "/app.htm"GWT> openid dans un (navigateur) pop-up

Il affiche un bouton de connexion OpenID qui fait un

Window.Location.assign("/openidServlet?return=/app.htm")

Cette servlet prépare des éléments pour appeler la page openid de google, puis revient à l'url de retour. Ceci fonctionne, mais app.html affiche également un google maps et ceci est lourd lors du rechargement.

Je voudrais le faire dans une nouvelle fenêtre (une sorte de pop-up) pour éviter rechargeant « app.htm »

Dans un monde parfait, lorsque la fenêtre se ferme Openid, il envoie à app.htm quelque chose à dire "prêt, faites votre requête loginRpc nouveau"

je l'ai déjà essayé de le faire dans un Frame mais je reçois

Refused to display document because display forbidden by X-Frame-Options

Utilisation de gwt2.4 et NO gae

Répondre

1

Vous souhaitez utiliser le OpenID UI Extension. Il y a sample code disponible en JavaScript, qui devrait être relativement facile à porter sur GWT (ou plus facilement encapsulé, en utilisant JSNI).

Fondamentalement, il utilise window.open() pour démarrer le processus de signature OpenID dans une fenêtre pop-up, et il surveille l'objet de la fenêtre (retourné par window.open(), ce qui nécessite l'utilisation JSNI en GWT, comme com.google.gwt.user.client.Window#open ne retourne pas) pour voir si elle était fermé ou pas (et votre page return_to pourrait contenir un script pour fermer automatiquement la fenêtre si vous le souhaitez).
Lorsque la fenêtre contextuelle est fermée, vous pouvez réessayer votre demande et éventuellement recommencer le processus de signature si vous constatez que l'utilisateur n'est toujours pas connecté.

Ils ne semblent pas l'utiliser, mais je suppose que vous pourrait communiquer à votre application à partir de la page en utilisant return_towindow.opener (et d'exposer une méthode de rappel par JSNI: https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsJSNI#calling)

+0

merci pour votre réponse, je vais essayer demain. Je le garde ouvert jusqu'à demain soir, pour avoir peut-être d'autres conseils. Vous obtiendrez le point ;-) – Overnuts

Questions connexes