-
Notifications
You must be signed in to change notification settings - Fork 1
/
AppToken.js
55 lines (55 loc) · 1.39 KB
/
AppToken.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
class AppToken {
constructor() {
this.token;
this.tokenExpiry;
this.tokenObject;
}
check() {
return new Promise((resolve, reject) => {
var url = "/appToken.php";
var reload;
var that = this;
if (
this.token == undefined ||
this.tokenExpiry == undefined ||
this.tokenObject == undefined
) {
reload = true;
} else {
var currentDate = Date.now();
var expiryDate = Date.parse(this.tokenExpiry);
if (currentDate > expiryDate) {
//expired
reload = true;
} else {
reload = false;
}
}
if (reload) {
$.ajax({
url: url,
success: function (data, status, xhr) {
var token = data["token"];
var tokenExpiry = data["expires"];
that.tokenObject = data;
that.token = token;
that.tokenExpiry = tokenExpiry;
resolve(true);
},
error: function (xhr, status, error) {
//issue 'public token'
that.tokenObject = {
token: "public",
expires: "2121-00-00T00:00:00+00:00",
};
that.token = that.tokenObject["token"];
that.tokenExpiry = that.tokenObject["expires"];
reject(false);
},
});
} else {
resolve(true);
}
});
}
}