Pergunta

O que você costuma fazer em uma aplicação GWT para iniciar sessão utilizando OpenID é o seguinte:

LoginInfo loginInfo = new LoginInfo();
UserService userService = UserServiceFactory.getUserService();
loginInfo.setLoginUrl(userService.createLoginURL(returnToUrl));
return loginInfo();

Onde returnToUrl atual é a URL que você gostaria de redirecionar de volta após a verificação.Isso funciona bem, se returnToUrl é uma URL simples como http://mydomain.com/go/here

Mas como meu aplicativo é executado como um GMail contextuais gadget, é envolto em um quadro que recebe o seu conteúdo a partir de um proxy google (googleusercontent.com).Portanto, este é o um pouco mor complexe - URL dentro do quadro eu gostaria de redirecionar de volta para:

https://jtphjhg2q9h3ul31ifsbvm5hv7717h49-a-gm-opensocial.googleusercontent.com/gadgets/ifr?url=http%3A%2F%2Fgorgactsgadget.appspot.com%2Fgorgadget%2Fcom.innubili.gorgacts.client.Gorgadget.gadget.xml&container=gm&view=card

Durante o OpenID o registo, o utilizador é redireccionado várias vezes e, se a returnToUrl não está devidamente codificado de url peças de ele se perder.

Como eu descobri aqui, você mesmo, em alguns casos, dar um duplo-codificar o URL.Mas desta vez eu não sou capaz de codificar a URL corretamente.

Então, minhas perguntas:

  • Você tem todas as dicas de que um OpenID-voltar-para-URL deve assemelhar-se em um Gmail contextuais gadget?

  • Ou talvez um pouco mais simples pergunta:Existe alguma outra maneira, que eu possa recuperar o e-mail do atual registrado no usuário do GMail?

Foi útil?

Solução

Você não pode usar o openId login a partir de dentro de um Gadget, porque o seu gadget é representada através do gadget recipiente.Você tem que abrir uma janela popup para fazer o openId login e associar o opensocialId para o seu openId identidade no servidor.Você tem que persistir a relação entre openSocialId e a identidade do usuário no servidor.A partir de então, o gadget conhece a sua identidade, solicitando a relação de sua opensocialId.

veja também http://code.google.com/googleapps/marketplace/best_practices.html#gadget_sso

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top