11var express = require ( "express" ) ;
22var jwt = require ( "jsonwebtoken" ) ;
3+ var cors = require ( "cors" ) ;
4+ var bodyParser = require ( "body-parser" ) ;
35
46const app = express ( ) ;
57
8+ app . use ( cors ( ) ) ;
9+ app . use ( bodyParser . json ( ) ) ;
10+
611app . get ( "/" , ( req , res ) => {
712 res . json ( {
813 message : "Welcome to the API."
@@ -11,26 +16,36 @@ app.get("/", (req, res) => {
1116
1217app . get ( "/protected" , verifyToken , ( req , res ) => {
1318 //Do we want to do this async or not?
14- jwt . verify ( req . token , "the_secret_key" ) ,
15- ( err , authData ) => {
16- if ( err ) {
17- res . sendStatus ( 403 ) ;
18- } else {
19- res . json ( {
20- message : "You've successly accessed a protected route!" ,
21- authData
22- } ) ;
23- }
24- } ;
19+ jwt . verify ( req . token , "the_secret_key" , err => {
20+ if ( err ) {
21+ res . sendStatus ( 403 ) ;
22+ } else {
23+ res . json ( {
24+ message : "You've successly accessed a protected route!"
25+ } ) ;
26+ }
27+ } ) ;
2528} ) ;
2629
2730app . post ( "/login" , ( req , res ) => {
2831 // Are we fine with just faking out a user?
29- const user = { name : "Nancy Usery" , email : "nancy@gmail.com" , id : 4321 } ;
30- const token = jwt . sign ( { user } , "the_secret_key" ) ;
31- res . json ( {
32- token
33- } ) ;
32+ const user = {
33+ email : "nancy@gmail.com" ,
34+ password : "pass123"
35+ } ;
36+ if (
37+ req . body &&
38+ req . body . email === user . email &&
39+ req . body . password === user . password
40+ ) {
41+ const token = jwt . sign ( { user } , "the_secret_key" ) ;
42+ res . json ( {
43+ token,
44+ email : user . email
45+ } ) ;
46+ } else {
47+ res . sendStatus ( 401 ) ;
48+ }
3449} ) ;
3550
3651function verifyToken ( req , res , next ) {
@@ -40,6 +55,7 @@ function verifyToken(req, res, next) {
4055 if ( typeof bearerHeader !== "undefined" ) {
4156 const bearer = bearerHeader . split ( " " ) ;
4257 const bearerToken = bearer [ 1 ] ;
58+
4359 req . token = bearerToken ;
4460 next ( ) ;
4561 } else {
0 commit comments