Passport身份验证通过邮递员工作,但不适用于Web App

时间:2018-11-21 12:06:55

标签: reactjs express cookies passport.js axios

在后端上使用Express和Passport JS,我们目前能够登录到应用程序,并使用邮递员访问所有API请求。

但是,当我们尝试在React JS Web应用程序上发出需要身份验证的API请求时,会收到401未经授权的错误。

我们已经运行了来自邮递员请求和Web应用程序请求的日志,并且两者都在标头中传递了connect.sid cookie。

我的问题是,如何使应用程序通过身份验证,并能够像邮递员一样发出API请求。我以与使用Web应用程序相同的方式登录邮递员,但它不对api请求进行身份验证。

我尝试过的事情:

  • 手动设置标题以允许跨源请求
  • 设置授权承载令牌
  • 在后端指定前端的来源,这仅允许从前端Web服务器进行api调用

该应用程序是ReactJS应用程序,我正在使用Axios进行API调用

1 个答案:

答案 0 :(得分:0)

我通过在登录时传递withCredentials来解决此问题,这会将您的用户发送到passport.js并对用户进行身份验证。

每次进行API调用时都需要调用withCredentials