【发布时间】:2020-07-25 19:54:27
【问题描述】:
我在 netlify 上部署了我的应用程序。
在本地服务器上,我可以发表评论。
但在生产模式下,
“错误:GraphQL 错误:无法读取未定义的属性 'headers'” 当我提交评论时出现。
我尝试了很多方法来解决这个问题,但我无法解决它。
我认为问题在于我在 Heroku 上的 GraphQL 服务器。
check-auth.js
const { AuthenticationError } = require('apollo-server');
const jwt = require('jsonwebtoken');
const { SECRET_KEY } = require('../config');
module.exports = (context) => {
// context = { ... headers }
const authHeader = context.req.headers.authorization;
if (authHeader) {
// Bearer ....
const token = req.headers.authorization || '';
//I tried. const token = req.headers["authorization"];
if (token) {
try {
const user = jwt.verify(token, SECRET_KEY);
return user;
} catch (err) {
throw new AuthenticationError('Invalid/Expired token');
}
}
throw new Error("Authentication token must be 'Bearer [token]");
}
throw new Error('Authorization header must be provided');
};
只有登录用户才能发表评论。
用户登录后,我的用户 ID 存储在本地服务器中。 关键是 jwtToken。
【问题讨论】:
标签: reactjs graphql apollo react-apollo apollo-server