From 32eac12dfa04f90913873c6be3b1ac3a857e057e Mon Sep 17 00:00:00 2001 From: Barry Low Date: Sat, 3 Nov 2018 15:48:09 -0700 Subject: [PATCH] Server: add module auth with Master API --- api/src/ApolloServer.js | 2 ++ api/src/graphql/resolvers/Mutation/index.js | 4 +++- api/src/middleware/getMember.js | 4 ++-- api/src/middleware/index.js | 3 +++ api/src/middleware/moduleAuth.js | 13 +++++++++++++ 5 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 api/src/middleware/index.js create mode 100644 api/src/middleware/moduleAuth.js diff --git a/api/src/ApolloServer.js b/api/src/ApolloServer.js index c0eb6da35..c71387463 100644 --- a/api/src/ApolloServer.js +++ b/api/src/ApolloServer.js @@ -1,6 +1,7 @@ import http from 'http' import { ApolloServer, makeExecutableSchema } from 'apollo-server-express' import { applyMiddleware as applyGraphQLMiddleware } from 'graphql-middleware' +import { moduleAuth } from './middleware' import { logger } from './logger' /** @@ -110,6 +111,7 @@ export default function createApolloServer( // Express middleware server.applyMiddleware({ + moduleAuth, app, cors, path: graphqlEndpoint, diff --git a/api/src/graphql/resolvers/Mutation/index.js b/api/src/graphql/resolvers/Mutation/index.js index 021a37075..7afc8a29e 100644 --- a/api/src/graphql/resolvers/Mutation/index.js +++ b/api/src/graphql/resolvers/Mutation/index.js @@ -78,7 +78,9 @@ export const resolvers = { logger.info('createPlatformTeam') logger.info(await createPlatformTeam) + logger.info('createPlatformTeam Error') logger.error(await createPlatformTeam.error) + logger.info('createPlatformTeam Code') logger.error(await createPlatformTeam.code) // if (await createPlatformTeam.error && await createPlatformTeam.code === 404) throw new ApolloError(await createPlatformTeam.error, 404) @@ -110,7 +112,7 @@ export const resolvers = { }) } - // sendTeamCreateConfirmation(email, name, botName) + sendTeamCreateConfirmation(email, name, botName) return createTeam }, diff --git a/api/src/middleware/getMember.js b/api/src/middleware/getMember.js index 1a4498d45..d88eaba8f 100644 --- a/api/src/middleware/getMember.js +++ b/api/src/middleware/getMember.js @@ -46,10 +46,10 @@ export const getUser = authId => { .catch(err => { logger.info('getUser err') logger.info(err) - reject(new DatabaseError(err)) + reject(err) }) } catch (error) { - reject(new DatabaseError(error)) + reject(error) } }) } diff --git a/api/src/middleware/index.js b/api/src/middleware/index.js new file mode 100644 index 000000000..c23d24ee0 --- /dev/null +++ b/api/src/middleware/index.js @@ -0,0 +1,3 @@ +import moduleAuth from './moduleAuth' + +export { moduleAuth } diff --git a/api/src/middleware/moduleAuth.js b/api/src/middleware/moduleAuth.js new file mode 100644 index 000000000..6f1bb1509 --- /dev/null +++ b/api/src/middleware/moduleAuth.js @@ -0,0 +1,13 @@ +import { logger } from '../logger' + +export const moduleAuth = async (req, res, next, db) => { + if (req.headers.preshared === process.env.PRESHARED_GATEWAY_KEY) { + logger.info('Module authenticated') + next(); + } else { + logger.error('Module authentication error') + res.send(wrongPreshared); + } +} + +export default moduleAuth