Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class AuthenticatonRestore {
- private clearAuthData() {
- sessionStorage.removeItem(sessionTokenKey);
- sessionStorage.removeItem(userKey);
- sessionStorage.removeItem(lastTokenUpdateKey);
- }
- private get sessionToken() {
- return sessionStorage.getItem('pdsui-session-token');
- }
- private get user() {
- sessionStorage.getItem('user');
- }
- private get sessionToken() {
- sessionStorage.getItem(sessionTokenKey);
- }
- private getDiff() {
- const lastTokenUpdateDateString = sessionStorage.getItem(lastTokenUpdateKey);
- const lastTokenUpdate = lastTokenUpdateDateString && moment(lastTokenUpdateDateString, moment.ISO_8601) || null;
- return now.diff(lastTokenUpdate);
- }
- private shouldUpdateImmediately(diff) {
- return diff < SESSION_REFRESH_INTERVAL;
- }
- private shouldClearAuth() {
- const diff = getDiff();
- return (
- this.lastTokenUpdateDate == null ||
- !this.lastTokenUpdateDate.isValid() ||
- diff < 0 ||
- diff > TOKEN_EXPIRATION_TIME ||
- !this.sessionToken ||
- !this.user
- );
- }
- public restore() {
- if (this.shouldClearAuth) {
- this.clearAuthData();
- } else {
- axios.defaults.headers.common.Authorization = sessionToken;
- store.dispatch(loginSuccess(JSON.parse(user)));
- this.sessionUpdater.start(this.shouldUpdateImmediately);
- this.idleMonitor.start();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement