4

GWTPのゲートキーパー機能の使用に問題があります。gwtp-sample-tabの例に従って、クライアントコードを作成しました。しかし、ユーザーが正常にログインした場合にクライアント側に通知する方法を今でも疑問に思っていますか?(私はGoogle UserServiceを使用しています。)

誰かが私にちょっとした例を教えてもらえますか?

どうもありがとうございます!

4

1 に答える 1

7

GWTPゲートケッパーはセキュリティ目的(他のユーザーからの管理ページなどをブロックする)のためだけに存在するため、私があなたの質問を正しく理解しているかどうかはわかりません。プレゼンターに@UseGatekeeper( LoggedInGatekeeper.class )とgwtpで注釈を付けると、登録済みのユーザーにのみ表示され、他のすべてのユーザーはホームページ/エラーページにリダイレクトされます。

とにかく、GAE Users API(userservice)を使用しているサイトの場合、ユーザーはGoogleのログインページにアクセスして承認を受けてから、サイトに戻る必要があります。サイトのページは完全に更新されるため、この手法とjspを使用すると、ユーザーの情報をホストのjsp-pageに直接保存できます。

次に、メインプレゼンターonReset()メソッドで、クラスまたはJSNIを使用してこれらのデータを取得Dictionaryし、次のようにします。

email = JSNIUtils.getEmail(); 
  // or
  // Dictionary info = Dictionary.getDictionary("info");
  // String email = info.get("email");
loginUrl = JSNIUtils.getLogInUrl();
logoutUrl = JSNIUtils.getLogOutUrl();

if (email != null && logoutUrl != null) {
      // user logged in -> show his email & log out link
    getView().getUserNameAnchor().setText(email);
    getView().getLogInOutAnchor().setText("Log out");
    getView().getLogInOutAnchor().setHref(logoutUrl);
} else if (loginUrl != null) {  
      // unknown user -> show welcome & log in link
    getView().getUserNameAnchor().setText("Hello Stranger");
    getView().getLogInOutAnchor().setText("Log in");
    getView().getLogInOutAnchor().setHref(loginUrl);
} // something else 
于 2011-06-04T20:49:48.047 に答える