我想在应用程序启动时(已在用户浏览器中加载)对服务器执行异步调用。
要与服务器通信,我使用RestyGWT。
在应用程序启动时,我想调用服务器来检查用户是否已登录(他的cookie /令牌是否仍然有效)?
如果令牌仍然有效,我想将用户重定向到登录用户的页面。如果不是,我想重定向到login
页面
我也想在内部客户端应用网址中使用此功能,例如:http://localhost:8080/cms/#/admin
。当我从应用程序内部输入此URL时,它可以正常工作。当我输入此网址时,它会将我重定向到默认网页。
请帮忙。
这是我的服务执行代码:
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中完成了这个,但我认为这是错误的。
答案 0 :(得分:0)
我认为如果你离开构造函数并进入onBind()方法就足够了。虽然我假设这是在你的主持人在root中显示,你的其他主持人在根节目主持人插槽中显示。
答案 1 :(得分:0)
解决方案是创建实现Bootstrapper
com.gwtplatform.mvp.client.Bootstrapper
类
并在此类实现方法void onBootstrap()
中执行service.isCurrentUserLoggedIn(new MethodCallback<Boolean>() {})
然后根据答案结果,重定向到登录或当前位置。