import { Config } from "~/common/config";
import { uniqBy } from "lodash";
+export const TARGET_URL = 'targetURL';
export const API_TOKEN_KEY = 'apiToken';
export const USER_EMAIL_KEY = 'userEmail';
export const USER_FIRST_NAME_KEY = 'userFirstName';
}
}
+ public removeTargetURL() {
+ this.getStorage().removeItem(TARGET_URL);
+ }
+
+ public getTargetURL() {
+ return this.getStorage().getItem(TARGET_URL);
+ }
+
public removeApiToken() {
this.getStorage().removeItem(API_TOKEN_KEY);
}
this.getStorage().removeItem(USER_IS_ACTIVE);
this.getStorage().removeItem(USER_USERNAME);
this.getStorage().removeItem(USER_PREFS);
+ this.getStorage().removeItem(TARGET_URL);
}
public login(uuidPrefix: string, homeCluster: string, loginCluster: string, remoteHosts: { [key: string]: string }) {
const currentUrl = `${window.location.protocol}//${window.location.host}/token`;
const homeClusterHost = remoteHosts[homeCluster];
+ this.getStorage().setItem(TARGET_URL, window.location.href);
window.location.assign(`https://${homeClusterHost}/login?${(uuidPrefix !== homeCluster && homeCluster !== loginCluster) ? "remote=" + uuidPrefix + "&" : ""}return_to=${currentUrl}`);
}
const apiToken = getUrlParameter(search, 'api_token');
const loadMainApp = this.props.loadMainApp;
this.props.dispatch<any>(saveApiToken(apiToken)).finally(() => {
- if (loadMainApp) {
+ const redirectURL = this.props.authService.getTargetURL();
+
+ if (redirectURL) {
+ this.props.authService.removeTargetURL();
+ window.location.href = redirectURL;
+ }
+ else if (loadMainApp) {
if (this.props.dispatch(getAccountLinkData())) {
this.props.dispatch(navigateToLinkAccount);
}