2011-06-29 8 views
1

GWTアプリケーションを自動化するためにGAEユーザーサービスを使用しています。 ユーザがログインしているかどうかに応じて、LoginPage/Dashboardが表示されます。GWTとAppEngineユーザーサービス

GWTアプリケーションを呼び出し認証サーブレット(Window.Location.assign(「/ googleauth」)。我々は、コールバック・サーブレットにリダイレクトされ、認証後に、Googleの認証ページに制御を転送するアンロードするアプリケーションを引き起こす

私は、ユーザーがコールバックサーブレットに成功しLOGGEDINされているかどうかを確認することができますしかし、私は単純にセッションログインが失われたバック私のアプリケーションにリダイレクトする場合

を最初からアプリケーションの負荷が

を私はクッキーを設定する場合 - 。。。>

HttpSession session = request.getSession(); 文字列sessionid = session.getId(); //セッションIDを から取得します。 リクエスト Cookie Cookie =新しいCookie( "sid"、sessionid); response.addCookie(cookie); response.sendRedirect(AppURL.getApplicationBaseURL()); ;私のクライアントコードチェックで

- >

文字列セッションID = Cookies.getCookie( "SID")。 場合は(セッションID!= null)の

{// ダッシュボードを表示する}私は、安全な使用しています方法は何ですか?クッキーはどのくらい有効ですか?

答えて

1

あなたは言った:

I simply redirect back to my application the session login is lost. 

これは起こるべきではありません。ログインした後は、ログアウトまたはセッションのタイムアウトまでGAE設定でセッションを設定する必要があります。

サーバーへのGWT-RPC呼び出しを行い、ユーザーがログインしているかどうかを確認するだけです(UserServiceFactory.getUserService().isUserLoggedIn())。

注:セッションCookieを探している場合、AppEngineは本番サーバーと開発サーバーで異なるCookie名を使用します。これは、生産にACSIDクッキーを使用し、dev_appserver_loginを使用します。

+0

はい、私は単純にresponse.sendRedirect( "")を使用してリダイレクトします。私はGWT RPC呼び出しを行い、ログインしたユーザはfalseになります。App Engineの設定にはCookieの有効期限が1日に設定されています –

+0

CallBackサーブレットとGWTページの両方で 'ACISD'(または' dev_appserver_login')の値をチェックしてみてください。 (ブラウザ内の)ACSID Cookieのパスも確認してください。 –

+0

あなたと同様のセットアップを使用して私は:私は必要なときにログインページに転送するGWTページがあります。ログインページはJSP(OpenID)で、選択するとGoogleログインページに転送されます。ログインすると、GWTのページに直接リダイレクトされます。私はあなたのように中間のコールバックページを持っていません。すべてが期待どおりに機能します。 –

関連する問題