我将前端和后端应用程序上传到 Heroku,但无法使用 jwt()

Posted

技术标签:

【中文标题】我将前端和后端应用程序上传到 Heroku,但无法使用 jwt()【英文标题】:I uploaded my frontend and backend app to Heroku but I cannot use jwt() 【发布时间】:2019-11-01 16:11:26 【问题描述】:

我将我的 nodejs 后端和 angular 前端项目上传到 heroku,为了让它工作,我不得不删除 app.use(jwt());为了使部署工作。问题是我希望在应用程序中使用 jwt。删除后,我收到以下消息

 "message":"Invalid Token" 

我认为这是因为后端要求静态文件具有 jwt 令牌。如何在不破坏 heroku 上的应用程序的情况下添加 jwt。代码可以在这里找到 app with combined frontend and backend not deploying to Heroku

该代码的唯一区别是我在注释中添加了 get 路由并注释掉了 app.use(jwt());

【问题讨论】:

在部署中使用 app.use(jwt()) 时的错误消息是什么?您使用的是什么版本的 node、express、angular、jwt 包等?可能是过时的软件包,在这种情况下,您需要更新到当前版本。这可能是由于已实现的高安全漏洞造成的。 @pbordeaux 我没有收到错误,我收到以下消息 "message":"Invalid Token"。我认为它拒绝了前端访问,因为它没有 jwt 而不是导航到登录屏幕。 node 版本 v10.9.0,npm 版本 6.9.0,Express 版本 4.17.0,jwt 版本 5.3.1,angular 版本 7.3.7。 好久没做express/node了,是不是没有指定失败重定向?似乎在包含身份验证之前没有提供您的应用程序,可能吗?抱歉,我对此有点不习惯 【参考方案1】:

通过添加 app.use(express.static(__dirname + '/dist/app-name')); 解决了这个问题在 app.use(jwt());

之前

【讨论】:

以上是关于我将前端和后端应用程序上传到 Heroku,但无法使用 jwt()的主要内容,如果未能解决你的问题,请参考以下文章

两个独立的 Heroku(Node 后端和 React 前端)之间的通信?

前端用户认证和后端用户认证的区别

微擎小程序安装教程

从 django 静态文件提供服务并上传到 heroku 时无法找到反应静态文件

前端和后端无法通信

如何创建只能由前端访问的私有api?