@@ -2,9 +2,10 @@ const express = require('express');
2
2
const router = express . Router ( ) ;
3
3
const mongoose = require ( 'mongoose' ) ;
4
4
const User = require ( '../models/user' ) ;
5
-
5
+ const jwt = require ( 'jsonwebtoken' )
6
6
const db = "mongodb://testuser:[email protected] :23136/eventsdb" ;
7
7
// mongoose.Promise = global.Promise;
8
+
8
9
mongoose . connect ( db , function ( err ) {
9
10
if ( err ) {
10
11
console . error ( 'Error! ' + err )
@@ -13,6 +14,23 @@ mongoose.connect(db, function(err){
13
14
}
14
15
} ) ;
15
16
17
+ function verifyToken ( req , res , next ) {
18
+ console . log ( JSON . stringify ( req . headers ) )
19
+ if ( ! req . headers . authorization ) {
20
+ return res . status ( 401 ) . send ( 'Unauthorized request' )
21
+ }
22
+ let token = req . headers . authorization . split ( ' ' ) [ 1 ]
23
+ if ( token === 'null' ) {
24
+ return res . status ( 401 ) . send ( 'Unauthorized request' )
25
+ }
26
+ let payload = jwt . verify ( token , 'secretKey' )
27
+ if ( ! payload ) {
28
+ return res . status ( 401 ) . send ( 'Unauthorized request' )
29
+ }
30
+ req . userId = payload . subject
31
+ next ( )
32
+ }
33
+
16
34
router . get ( '/events' , ( req , res ) => {
17
35
let events = [
18
36
{
@@ -55,7 +73,7 @@ router.get('/events', (req,res) => {
55
73
res . json ( events )
56
74
} )
57
75
58
- router . get ( '/special' , ( req , res ) => {
76
+ router . get ( '/special' , verifyToken , ( req , res ) => {
59
77
let specialEvents = [
60
78
{
61
79
"_id" : "1" ,
@@ -121,7 +139,10 @@ router.post('/login', (req, res) => {
121
139
if ( user . password !== userData . password ) {
122
140
res . status ( 401 ) . send ( 'Invalid Password' )
123
141
} else {
124
- res . status ( 200 ) . send ( 'Logged in succesfully' )
142
+ let payload = { subject : user . _id }
143
+ let token = jwt . sign ( payload , 'secretKey' )
144
+ console . log ( token )
145
+ res . status ( 200 ) . send ( { token} )
125
146
}
126
147
}
127
148
} )
0 commit comments