Advertisement
Guest User

Untitled

a guest
Jan 19th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. class AuthenticatonRestore {
  2. private clearAuthData() {
  3. sessionStorage.removeItem(sessionTokenKey);
  4. sessionStorage.removeItem(userKey);
  5. sessionStorage.removeItem(lastTokenUpdateKey);
  6. }
  7.  
  8. private get sessionToken() {
  9. return sessionStorage.getItem('pdsui-session-token');
  10. }
  11.  
  12. private get user() {
  13. sessionStorage.getItem('user');
  14. }
  15.  
  16. private get sessionToken() {
  17. sessionStorage.getItem(sessionTokenKey);
  18. }
  19.  
  20. private getDiff() {
  21. const lastTokenUpdateDateString = sessionStorage.getItem(lastTokenUpdateKey);
  22. const lastTokenUpdate = lastTokenUpdateDateString && moment(lastTokenUpdateDateString, moment.ISO_8601) || null;
  23. return now.diff(lastTokenUpdate);
  24. }
  25.  
  26. private shouldUpdateImmediately(diff) {
  27. return diff < SESSION_REFRESH_INTERVAL;
  28. }
  29.  
  30. private shouldClearAuth() {
  31. const diff = getDiff();
  32.  
  33. return (
  34. this.lastTokenUpdateDate == null ||
  35. !this.lastTokenUpdateDate.isValid() ||
  36. diff < 0 ||
  37. diff > TOKEN_EXPIRATION_TIME ||
  38. !this.sessionToken ||
  39. !this.user
  40. );
  41. }
  42.  
  43. public restore() {
  44. if (this.shouldClearAuth) {
  45. this.clearAuthData();
  46. } else {
  47. axios.defaults.headers.common.Authorization = sessionToken;
  48. store.dispatch(loginSuccess(JSON.parse(user)));
  49. this.sessionUpdater.start(this.shouldUpdateImmediately);
  50. this.idleMonitor.start();
  51. }
  52. }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement