-
Notifications
You must be signed in to change notification settings - Fork 77
/
spcp-session.client.factory.js
66 lines (63 loc) · 1.75 KB
/
spcp-session.client.factory.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
'use strict'
const jwtDecode = require('jwt-decode')
angular
.module('forms')
.factory('SpcpSession', ['$window', '$cookies', SpcpSession])
function SpcpSession($window, $cookies) {
let session = {
userName: null,
cookieName: null,
rememberMe: null,
issuedAt: null,
cookieNames: {
SP: 'jwtSp',
CP: 'jwtCp',
},
setUser: function (authType) {
if (session.cookieNames[authType]) {
session.cookieName = session.cookieNames[authType]
const cookie = $cookies.get(session.cookieName)
if (cookie) {
const decoded = jwtDecode(cookie)
session.userName = decoded.userName
session.rememberMe = decoded.rememberMe
session.issuedAt = parseInt(decoded.iat)
// Every 5 seconds, check if cookie exists and log out if cookie does not exist
setInterval(session.checkCookie, 5000)
}
}
},
logout: function () {
$cookies.remove(
session.cookieName,
$window.spcpCookieDomain ? { domain: $window.spcpCookieDomain } : {},
)
$cookies.put('isJustLogOut', true)
$window.location.reload()
},
checkCookie: function () {
let cookie = $cookies.get(session.cookieName)
if (!cookie) {
session.logout()
}
},
isJustLogOut: function () {
let val = $cookies.get('isJustLogOut')
$cookies.remove('isJustLogOut')
return val
},
isLoginError: function () {
let val = $cookies.get('isLoginError')
$cookies.remove('isLoginError')
return val
},
isRememberMeSet: function () {
return session.rememberMe
},
getIssuedAt: function () {
// Send in milliseconds
return session.issuedAt * 1000
},
}
return session
}