I would like to execute asynchronous call to the server when the application starts (have been loaded in users browser).
To communicate with server I use RestyGWT.
On application start I wanna call server to check is user logged in (is his cookie/token is still valid)?
If token is still valid, I would like to redirect user to page for logged in users. If not I would like to redirect to login page
I would like to work this also for inside client app urls, for example: http://localhost:8080/cms/#/admin. When I enter this url from inside app it work. When I enters this url it redirect me to default page.
Please help.
Here is my service execution code:
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);
}
});
I've done this in AppPresenter in class constructor, but this is I think wrong.
The solution is to create own
Bootstrapperclass that implementscom.gwtplatform.mvp.client.Bootstrapperand inside this class implement method
void onBootstrap()where I executeservice.isCurrentUserLoggedIn(new MethodCallback<Boolean>() {})and then base on answer result, redirect to login or current place.Here is official documentation.