File tree 1 file changed +49
-0
lines changed
1 file changed +49
-0
lines changed Original file line number Diff line number Diff line change
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 }
You can’t perform that action at this time.
0 commit comments