1

我想在应用程序启动时对服务器执行异步调用(已加载到用户浏览器中)。

为了与服务器通信,我使用 RestyGWT。

在应用程序启动时,我想调用服务器来检查用户是否登录(他的 cookie/令牌是否仍然有效)?如果令牌仍然有效,我想将用户重定向到登录用户的页面。如果不是,我想重定向到login页面

我也想为内部客户端应用程序 url工作,例如:http://localhost:8080/cms/#/admin. 当我从应用程序内部输入此网址时,它可以工作。当我输入此网址时,它会将我重定向到默认页面。

请帮忙。

这是我的服务执行代码:

service.isCurrentUserLoggedIn(new MethodCallback<Boolean>() {
    @Override
    public void onFailure(Method method, Throwable exception) {
    MaterialToast.fireToast("Fail to check is current user logged in " + method + " " + exception.getLocalizedMessage());
    }

    @Override
    public void onSuccess(Method method, Boolean response) {
    currentUser.setLoggedIn(response);
    getView().setLoginButtonVisbility(response);
    }
});

我已经在类构造函数的 AppPresenter 中完成了此操作,但我认为这是错误的。

4

2 回答 2

0

我认为如果您移出构造函数并进入 onBind() 方法就足够了。虽然我假设这是在根演示者中显示的您的演示者,而您的其他演示者在根演示者插槽中显示。

于 2016-03-13T00:17:47.177 回答
0

解决方案是创建自己的Bootstrapper类来实现com.gwtplatform.mvp.client.Bootstrapper

在这个类中实现void onBootstrap()我执行的方法,service.isCurrentUserLoggedIn(new MethodCallback<Boolean>() {}) 然后根据答案结果,重定向到登录或当前位置。

这是官方文档。

于 2016-03-23T09:54:20.660 回答