表达js-使用auth0处理中间件时出错

时间:2018-12-28 14:57:25

标签: javascript typescript express middleware auth0

我有以下快递服务器:

import * as express from "express";
import * as bodyParser from "body-parser";
import * as mongoose from "mongoose";

import { Routes } from "./routes/transactions";
import { authMiddleware } from "./middleware/auth";
import { errorMiddleware } from "./middleware/error";

class App {
  public app: express.Application;
  public routeProvider: Routes = new Routes();
  public mongoUrl: string = "mongodb://...:...@mydomain.com:27017/mycollection"; // This should be read from github CLI

  constructor() {
    this.app = express();
    this.config();
    this.routeProvider.routes(this.app);
    this.mongoSetup();
  }

  private config(): void {
    this.app.use(bodyParser.json());
    this.app.use(bodyParser.urlencoded({ extended: false }));
    this.app.use(errorMiddleware);
    this.app.use(authMiddleware);
  }

  private mongoSetup(): void {
    mongoose.Promise = global.Promise;
    mongoose.connect(
      this.mongoUrl,
      { useNewUrlParser: true }
    );
  }
}

export default new App().app;

这是authMiddleware(与用于node.js的auth0站点上的指南几乎相同):

import * as jwt from "express-jwt";
import { expressJwtSecret } from "jwks-rsa";

export function authMiddleware() {
  return jwt({
    secret: expressJwtSecret({
      cache: true,
      rateLimit: true,
      jwksRequestsPerMinute: 5,
      jwksUri: "..."
    }),
    audience: "...",
    issuer: "...",
    algorithms: ["RS256"]
  });
}

我的错误中间件:

import { Request, Response } from "express";

export function errorMiddleware(err, req: Request, res: Response, next) {
  console.error(err.stack);
  res.status(500).send("Something broke!");
}

现在将要发生的事情-由于我故意破坏了所有auth和mongodb URL,因此我将获得状态码500和消息Something broke!

相反,我得到了

  

无法得到任何回应

使用邮递员发送请求时的消息。

我在做什么错了?

0 个答案:

没有答案