将 https 添加到由 webpack 代理的 graphql express 端点
Adding https to a graphql express endpoint proxied by webpack
我正在构建一个包含webpack,express和graphql的应用程序。Express 为 express-graphql 端点提供服务,然后由 webpack-dev-server 代理。我想知道如何将https添加到该端点。
我没有 SSL 的经验,在 Express 和 webpack 方面的经验有限。我什至不确定问题是如何保护代理、快速服务器还是 express-graphql 端点。
作为旁注,我还添加了使用 auth0 的用户身份验证,这似乎工作正常。
服务器.js
import express from 'express';
import graphQLHTTP from 'express-graphql';
import jwt from 'express-jwt';
import path from 'path';
import webpack from 'webpack';
import WebpackDevServer from 'webpack-dev-server';
import {Schema} from './data/schema';
const APP_PORT = process.env.PORT || 3000;
const GRAPHQL_PORT = 8080;
const AUTH0_ID = process.env.AUTH0_ID;
const AUTH0_SECRET = process.env.AUTH0_SECRET;
const authenticate = jwt({
secret: new Buffer(AUTH0_SECRET, 'base64'),
audience: AUTH0_ID,
});
// Expose a GraphQL endpoint
const graphQLServer = express();
graphQLServer.use('/', authenticate, graphQLHTTP(request => ({
graphiql: true,
pretty: true,
schema: Schema,
rootValue: { user: request.user },
})));
graphQLServer.listen(GRAPHQL_PORT, () => console.log(
`GraphQL Server is now running on http://localhost:${GRAPHQL_PORT}`
));
// Serve the Relay app
...
const app = new WebpackDevServer(compiler, {
contentBase: '/public/',
proxy: {'/graphql': `http://localhost:${GRAPHQL_PORT}`},
publicPath: '/app/',
stats: {colors: true, chunks: false},
});
// Handle incoming routes
app.use('/', (req, res) => {
res.sendFile(path.join(__dirname + '/public/index.html'));
});
app.listen(APP_PORT, () => {
console.log(`App is now running on http://localhost:${APP_PORT}`);
});
我认为您希望保护面向公共的任何端点。在生产中使用 webpack 开发服务器不是一种推荐的方法,但如果你确实需要使用 https,那么 webpack 开发服务器确实提供了这样做的支持。
相关文章:
- 使用Express捕获参数
- 从模块内部访问Express装载路径
- 在Nodejs中Express输入DEBUG=app时权限被拒绝/bin
- 如何使用Node/Express显示有关特定错误的自定义html页面
- 发送json对象或使用express路由呈现视图
- renderReact/Rect Router+Node/Express.js的服务器端/同构渲染中未定义renderP
- 为什么不't Express呈现我的React应用程序
- Express服务器中语言子域的最佳实践
- 为什么不是'我的函数在解析云代码中工作吗?当我在Angular和Express中测试时,它是有效的
- Nodejs和express路由,如何处理客户端的承诺
- node.js和express中的异常处理
- 什么'在Express中路由时,应用程序级中间件和路由器级中间件之间的区别是什么
- 如何在不重新加载的情况下提交表单,并使用Node+Express将数据传递回同一页面
- Express.js:在用户发帖时获取用户的引荐来源网址
- 使用express.具有多个url和可选参数的Router()
- 使用connect vhost为多个express.js应用程序提供服务
- Express.js和multer:如何知道文件何时全部上传
- Express 4错误:Can't在发送标头后设置标头
- Node.JS, Angular.JS, MySql,Express.JS
- 将 https 添加到由 webpack 代理的 graphql express 端点