feat: production updates

This commit is contained in:
Wyatt Johnson
2018-07-16 13:26:41 -06:00
parent 34f42c2991
commit 6f6bedb07a
8 changed files with 33 additions and 20 deletions
+2 -1
View File
@@ -31,7 +31,7 @@ export interface SignupOptions {
db: Db;
}
export const signup = ({ db }: SignupOptions): RequestHandler => async (
export const signupHandler = ({ db }: SignupOptions): RequestHandler => async (
req: Request,
res,
next
@@ -42,6 +42,7 @@ export const signup = ({ db }: SignupOptions): RequestHandler => async (
// Tenant is guaranteed at this point.
const tenant = req.tenant!;
// Check to ensure that the local integration has been enabled.
if (!tenant.auth.integrations.local.enabled) {
// TODO: replace with better error.
return next(new Error("integration is disabled"));
+5 -3
View File
@@ -3,6 +3,7 @@ import http from "http";
import { Redis } from "ioredis";
import { Db } from "mongodb";
import { notFoundMiddleware } from "talk-server/app/middleware/notFound";
import { createPassport } from "talk-server/app/middleware/passport";
import { Config } from "talk-server/config";
import { handleSubscriptions } from "talk-server/graph/common/subscriptions/middleware";
@@ -30,16 +31,17 @@ export async function createApp(options: AppOptions): Promise<Express> {
// Logging
parent.use(accessLogger);
// Static Files
parent.use(serveStatic);
// Create some services for the router.
const passport = createPassport({ db: options.mongo });
// Mount the router.
parent.use(await createRouter(options, { passport }));
// Static Files
parent.use(serveStatic);
// Error Handling
parent.use(notFoundMiddleware);
parent.use(errorLogger);
return parent;
@@ -0,0 +1,5 @@
import { RequestHandler } from "express";
export const notFoundMiddleware: RequestHandler = (req, res, next) => {
next(new Error("not found"));
};
+9 -5
View File
@@ -1,14 +1,14 @@
import express from "express";
import passport from "passport";
import { signupHandler } from "talk-server/app/handlers/auth/local";
import { apiErrorHandler } from "talk-server/app/middleware/error";
import { errorLogger } from "talk-server/app/middleware/logging";
import { authenticate } from "talk-server/app/middleware/passport";
import tenantMiddleware from "talk-server/app/middleware/tenant";
import managementGraphMiddleware from "talk-server/graph/management/middleware";
import tenantGraphMiddleware from "talk-server/graph/tenant/middleware";
import { signup } from "talk-server/app/handlers/auth/local";
import { apiErrorHandler } from "talk-server/app/middleware/error";
import { errorLogger } from "talk-server/app/middleware/logging";
import { authenticate } from "talk-server/app/middleware/passport";
import { AppOptions } from "./index";
import playground from "./middleware/playground";
@@ -59,7 +59,11 @@ function createNewAuthRouter(app: AppOptions, options: RouterOptions) {
express.json(),
authenticate(options.passport, "local")
);
router.post("/local/signup", express.json(), signup({ db: app.mongo }));
router.post(
"/local/signup",
express.json(),
signupHandler({ db: app.mongo })
);
router.get("/oidc", authenticate(options.passport, "oidc"));
router.get("/oidc/callback", authenticate(options.passport, "oidc"));
// router.get("/google", options.passport.authenticate("google"));
-5
View File
@@ -1,11 +1,6 @@
import convict from "convict";
import dotenv from "dotenv";
import Joi from "joi";
// Apply all the configuration provided in the .env file if it isn't already in
// the environment.
dotenv.config();
// Add custom format for the mongo uri scheme.
convict.addFormat({
name: "mongo-uri",