1

私は GAE1.6.3/Java、フェデレーテッド ログインを使用しています。

com.google.appengine.api.users.UserService.createLogoutURL(String destinationURL, String authDomain)

ログアウト URL を作成します。

開発サーバーを使用して、サインイン後にサインアウトし、再度サインインしようとすると、ログイン パネルが表示されます。ログイン後、別のユーザーのメールを入力すると、前のユーザーと同じデータが表示されます。デバッグ後、ユーザーのログアウト後にセッションが破棄されないことが原因であることがわかりました。そのため、システムにログインした別のユーザーは、彼を前のユーザーとして認識します。

アプリを appspot に配信した後、ログアウトしてからログインしようとすると、ログイン ページに移動せず、アプリケーションに直接移動します。正しい動作は GMail と同じようにすべきだと思います。根本的な原因は開発サーバーと同じだと思います。

何か案は?

4

1 に答える 1

1

ユーザーがログアウトをクリックすると、App Engineアプリからログアウトしますが、フェデレーションプロバイダーからはログアウトしません。次のドキュメントで明確に言及されています: https ://developers.google.com/appengine/articles/openid

アプリケーションのセッションをクリアするには、アプリケーションのログアウトURLを指定し、session.invalidate()を使用してセッションを無効にしてから、com.google.appengine.api.users.UserService.createLogoutURL(String destinationURL、String authDomain)を使用してリダイレクトします。

于 2012-07-26T18:05:31.603 に答える