reactjs - Passport Authentication 通过 Postman 工作,而不是 Web App
问题描述
在后端使用 Express 和 Passport JS,我们目前能够登录到应用程序,并使用 postman 访问所有 API 请求。
但是,当我们尝试在 React JS Web 应用程序上发出需要身份验证的 API 请求时,我们会收到 401 未经授权的错误。
我们已经从邮递员请求和 Web 应用程序请求中运行了日志,并且都在标头中传递了 connect.sid cookie。
我的问题是,我如何让应用程序经过身份验证并能够像邮递员一样发出 API 请求。我以与使用 Web 应用程序相同的方式登录邮递员,但它不验证 api 请求。
我尝试过的事情:
- 手动设置标头以允许跨源请求
- 设置授权不记名令牌
- 在后端指定前端的来源,仅允许从前端 Web 服务器进行 api 调用
该应用程序是一个 ReactJS 应用程序,我正在使用 Axios 进行 API 调用
解决方案
我通过在登录时传递 withCredentials 来解决这个问题,这会将您的用户发送到 passport.js 并验证用户。
每次进行 API 调用时都需要调用 withCredentials
推荐阅读
- json - 如何解析来自美国人口普查 API 调用的不规则 JSON 响应?
- javascript - 如何通过转到每个元素来弹出多维数组
- rabbitmq - 当 rabbitmq 关闭时停止轮询文件:spring 集成
- c - 如何将可变大小数组从 Windows 内核驱动程序传递给用户模式进程?
- html - 如何只抓取活动的 div
- r - 如何在 Shiny R 中添加反应式 for 循环?
- python - 在 Python 字符串列表中用括号替换双引号
- reactjs - Tracker.autorun 在 react 的 componentDidMount 中不起作用
- javascript - 是否使用来自外部域的数据附加 iframe 而不是安全地进行 AJAX 调用?
- azure - HSM、应用服务器和数据库之间的交互是如何发生的?