diff --git a/src/routing/admin_router.js b/src/routing/admin_router.js index 6eac02b3dff967353005da1fcae72ee3d6b5e4f1..48c968fe6b5cf5308424ed8b1fe68d9ca1f9f3c9 100644 --- a/src/routing/admin_router.js +++ b/src/routing/admin_router.js @@ -108,18 +108,19 @@ router.post('/login', (req, res, next) => { else if (!user) { return res.json(403, {message: "Not authenticated."}); } - - console.log(req.headers); // return 'Origin' header, useful later req.login(user, (err) => { if (err) { console.log(err); return err; } + // if request asks for a json, reply with a token // else redirect to admin panel (req.header('accept') == 'application/json') - ? res.json({ message: 'Authentication succeeded.' }) + ? res.json({ + message: 'Authentication succeeded.' + }) : res.redirect('/admin'); }); diff --git a/src/server.js b/src/server.js index b56ce60da3e45ecec5d6027b52fb77b3ee2b22bc..38969aacda942f3956414d80c661fd2b6f3f06a3 100644 --- a/src/server.js +++ b/src/server.js @@ -75,12 +75,36 @@ const corsOptions = { }; server.use(cors(corsOptions)); +import jwt from 'jsonwebtoken'; + +const SECRET_KEY = "azojgc;aegpfrihzcksdlmpqsqkx"; + +/* +const addUser = async (req, res, next) => { + const token = req.cookies.csrftoken; + if (!token) return next(); + console.log(`Token is ${token}`); + + try { + const { user } = jwt.verify(token, SECRET_KEY); + req.user = user; + } catch (err) { + console.log('Cookie error',err); + } +}; + +server.use(addUser); +*/ + server.use('/graphql', bodyParser.json(), // parse incoming HTTP request (req) as a JSON graphqlHTTP(async (req, res, params) => { // vary the options *on a per-request basis* let uid; let password; + + console.log(`User ${req.user ? req.user.uid : "none"}`); + console.log("User authenticated:",req.isAuthenticated()); if(req.isAuthenticated()) { try { @@ -95,7 +119,8 @@ server.use('/graphql', uid = defaultUser.dn.split("=")[1].split(",")[0]; password = defaultUser.passwd; } - // console.log("Accessing GraphQL as: ",uid); + + console.log("Cookies:",req.cookies); return { schema,