Skip to content

Commit cb00839

Browse files
committed
feat: add helper token
1 parent 11b8f61 commit cb00839

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

src/helpers/Token.ts

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import jwt, {
2+
TokenExpiredError,
3+
JsonWebTokenError,
4+
NotBeforeError,
5+
} from 'jsonwebtoken'
6+
7+
require('dotenv').config()
8+
9+
const { JWT_SECRET }: any = process.env
10+
11+
// Get Token from headers
12+
function getToken(headers: any) {
13+
if (headers && headers.authorization) {
14+
const parted = headers.authorization.split(' ')
15+
if (parted.length === 2) {
16+
return parted[1]
17+
}
18+
return null
19+
}
20+
return null
21+
}
22+
23+
// Verify Token
24+
function verifyToken(header: any) {
25+
const token = getToken(header)
26+
27+
try {
28+
if (!token) {
29+
return { data: null, message: 'Token not found!' }
30+
}
31+
32+
const data = jwt.verify(token, JWT_SECRET)
33+
return { data, message: 'Token is verify' }
34+
} catch (err) {
35+
if (err instanceof TokenExpiredError) {
36+
return { data: null, message: `Token ${err.message}` }
37+
}
38+
39+
if (err instanceof JsonWebTokenError) {
40+
return { data: null, message: `Token ${err.message}` }
41+
}
42+
43+
if (err instanceof NotBeforeError) {
44+
return { data: null, message: `Token ${err.message}` }
45+
}
46+
}
47+
}
48+
49+
export { getToken, verifyToken }

0 commit comments

Comments
 (0)