node.js - 无法使用远程服务器进行本地身份验证
问题描述
概括:
当我尝试运行连接到正在运行的服务器的前端反应应用程序,然后尝试登录时,我的isAuthenticated
查询在应该返回 true 时返回 false。
详细地:
我有一个部署的 Node Apollo 服务器(通过 heroku),它使用 graphql、express 和 passport 进行身份验证。可以在此处找到服务器(可能需要一分钟才能启动)并使用此代码。当我去这个服务器时,我可以通过运行以下突变登录:
mutation{
loginUser(data:{email: "john@gmail.com", password: "abc"}){
id
email
firstName
lastName
}
}
然后我运行以下查询,并返回true
:
query{
isAuthenticated
}
我想在我的前端应用程序上执行相同的操作。可以在此处找到此代码。只需转到此存储库,克隆它,然后运行yarn
,然后yarn start
让应用程序运行。但是,如果您打开控制台,然后单击“登录”按钮,然后单击“isAuthenticated”按钮,您将看到“isAuthenticated”返回为 false,而不是 true。
我在如何配置 express 及其 cors 选项或如何在前端设置 http 链接时做错了什么?我已经启用了 cors,localhost:8080
所以我不确定为什么我会看到这种效果。
expressMiddleware.use(cors({
credentials: true,
origin: 'http://localhost:8080',
}));
一些相关文件:
解决方案
@jimmy - 我尝试了本地设置,一切似乎都很好。
这是带有 的快照isAuthenticated: true
。
我更改了迷你服务器的用户名和密码以匹配迷你应用程序的用户名和密码。
小程序
const handleLogin = async (): Promise<void> => {
await loginUser({
variables: {
email: 'dad@gmail.com',
password: 'temp-password',
},
});
};
迷你服务器 - src/users.ts
export default [
{
id: '1',
firstName: 'John',
lastName: 'Smith',
email: 'dad@gmail.com',
password: 'temp-password',
},
];
推荐阅读
- javascript - 将 C 函数转换为 Javascript
- python-3.x - 我正在尝试将 .pb 文件转换为 .mlmodel 文件。我收到错误消息“Tensorflow 图不包含具有此名称的张量”
- javascript - 如何在javascript中的buttonclick上将图像放在另一个图像中
- sql-server - TFS 2015 - 修改 SQL Server 报告 (SSRS) 以包含用于列出签入文件的列
- ios - 即使在 iOS Swift 中获得 Facebook 的批准后,也无法获取 age_range 和性别
- html - 奇怪的行为
- reactjs - 按下时反应导航错误不会触发
- python - 为什么 numpy.ndarray.data 是切换?
- c++ - 如何创建不需要 Vista/Win7 用户安装 Visual C++ 可再发行组件的 Windows 可执行文件?
- javascript - 如何从 ng-model 填充文本的角度元素中获取文本