This repository was archived by the owner on Dec 28, 2022. It is now read-only.
forked from OperationCode/operationcode_frontend
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcookieHelper.js
More file actions
68 lines (55 loc) · 1.87 KB
/
Copy pathcookieHelper.js
File metadata and controls
68 lines (55 loc) · 1.87 KB
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
67
68
import Cookies from 'universal-cookie';
import jwt_decode from 'jwt-decode'; // eslint-disable-line camelcase
const cookieDomain = () => {
if (process.env.NODE_ENV === 'development') {
return 'localhost';
}
return 'operationcode.org';
};
const cookieOptions = { path: '/', domain: cookieDomain() };
export const setUserAuthCookie = ({ token, user }) => {
const cookies = new Cookies();
cookies.set('token', token, cookieOptions);
cookies.set('firstName', user.first_name, cookieOptions);
cookies.set('lastName', user.last_name, cookieOptions);
cookies.set('slackName', user.slack_name, cookieOptions);
cookies.set('mentor', user.mentor, cookieOptions);
cookies.set('verified', user.verified, cookieOptions);
};
export const setUserVerifiedCookie = (isVerified) => {
const cookies = new Cookies();
cookies.set('verified', isVerified, cookieOptions);
};
export const clearAuthCookies = () => {
const cookies = new Cookies();
cookies.remove('token', cookieOptions);
cookies.remove('firstName', cookieOptions);
cookies.remove('lastName', cookieOptions);
cookies.remove('slackName', cookieOptions);
cookies.remove('mentor', cookieOptions);
cookies.remove('verified', cookieOptions);
};
export const isMentor = () => {
const cookies = new Cookies();
return cookies.get('mentor');
};
export const authToken = () => {
const cookies = new Cookies();
const token = cookies.get('token');
return token;
};
const validToken = (token) => {
if (token === undefined) { return false; }
const jwt = jwt_decode(token);
const currentTime = new Date().getTime() / 1000;
if (currentTime > jwt.exp) { return false; }
return true;
};
export const getUserStatus = () => {
const cookies = new Cookies();
return {
mentor: cookies.get('mentor') === 'true',
signedIn: validToken(cookies.get('token')),
verified: cookies.get('verified') === 'true'
};
};