1

OpenIDを使用してサインインするためにGWTアプリケーションで通常行うことは次のとおりです。

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

ここで、returnToUrlは、確認後にリダイレクトする現在のURLです。returnToUrlがhttp://mydomain.com/go/hereのような単純なURLである場合、これは正常に機能します

しかし、私のアプリケーションはGMailコンテキストガジェットとして実行されるため、Googleプロキシ(googleusercontent.com)からコンテンツを取得するフレームにラップされます。つまり、これは-少し複雑です-私がリダイレクトしたいフレーム内のURLです:

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

OpenIDの登録中に、ユーザーは何度かリダイレクトされ、returnToUrlが適切にURLエンコードされていない場合、その一部が失われます。

ここでわかったように、場合によってはURLを二重にエンコードする必要があります。しかし、今回はURLを正しくエンコードできません。

だから、私の質問:

  • GmailのコンテキストガジェットでOpenID-return-to-URLがどのように表示されるかについてのヒントはありますか?

  • または、もう少し簡単な質問です。他に、現在ログインしているGMailユーザーのメールアドレスを取得する方法はありますか?

4

1 に答える 1

2

ガジェットはガジェットコンテナによってプロキシされるため、ガジェット内からopenIdログインを使用することはできません。openIdログインを実行し、opensocialIdをサーバー上のopenId IDに関連付けるには、ポップアップウィンドウを開く必要があります。openSocialIdとサーバー上のユーザーIDの間の関係を永続化する必要があります。それ以降、ガジェットはopensocialIdの関係を要求することでそのIDを認識します。

http://code.google.com/googleapps/marketplace/best_practices.html#gadget_ssoも参照してください

于 2011-11-11T11:32:29.880 に答える