From 91f51c5b6fe595d84ff7aedbd6a241cacc957eec Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 17 Apr 2017 20:22:06 -0700 Subject: cookie extractor --- app.js | 2 ++ passport.js | 16 +++++++++++----- routes/users.js | 9 +++++---- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/app.js b/app.js index a8c7c908..b411d734 100644 --- a/app.js +++ b/app.js @@ -1,5 +1,6 @@ const express = require('express') const bodyParser = require('body-parser') +const cookieParser = require('cookie-parser') const passport = require('./passport') const cache = require('./cache') @@ -8,6 +9,7 @@ app.enable('trust proxy') app.use(require('./blockcypher')) app.use(bodyParser.urlencoded({ extended: true })) app.use(bodyParser.json()) +app.use(cookieParser()) app.use(passport.initialize()) const users = require("./routes/users") diff --git a/passport.js b/passport.js index e79b53fe..776400a0 100644 --- a/passport.js +++ b/passport.js @@ -2,17 +2,23 @@ const passport = require('passport') const db = require('./redis') const jwt = require('passport-jwt') +const cookieExtractor = function(req) { + let token = null + if (req && req.cookies) { + token = req.cookies['token'] + console.log('set') + } + return token +} + + passport.use(new jwt.Strategy({ - jwtFromRequest: jwt.ExtractJwt.fromAuthHeader(), + jwtFromRequest: jwt.ExtractJwt.fromExtractors([cookieExtractor]), secretOrKey: process.env.SECRET }, function (payload, next) { - console.log(payload) db.hgetallAsync('user:' + payload.username).then((user) => { - console.log(user) - console.log(payload.username) next(null, user) }).catch((err) => { - console.log(err) next(null, false) }) }) diff --git a/routes/users.js b/routes/users.js index 3560bd71..3e05be9d 100644 --- a/routes/users.js +++ b/routes/users.js @@ -13,17 +13,18 @@ module.exports = { if (result) { let payload = { username: user.username } let token = jwt.sign(payload, process.env.SECRET) - res.json({message: 'ok', token: token}) + res.cookie('token', token, { expires: new Date(Date.now() + 9999999) }) + res.json({ token: token }) } else { - res.status(401) + res.status(401).end() } }).catch((err) => { console.log(err) - res.status(401) + res.status(401).end() }) }).catch((err) => { console.log(err) - res.status(401) + res.status(401).end() }) }, secret (req, res) { -- cgit v1.2.3