在我的服务器上托管JWT身份验证应用程序

时间:2017-06-21 20:28:11

标签: express nginx jwt passport.js

我按照教程https://jonathanmh.com/express-passport-json-web-token-jwt-authentication-beginners/进行了JWT身份验证。完整代码可在https://gist.github.com/JonathanMH/6bd82c0954fb8f21a837ce281da4265a查看。

在我的本地计算机上,该应用程序运行良好,但我希望能够将其部署在运行带有NGINX的Ubuntu服务器的虚拟专用服务器上。

我的NGINX配置如何让它在服务器上运行?目前看起来我遇到了CORS问题。

1 个答案:

答案 0 :(得分:1)

经过长时间的搜索,我找到了解决方案。我不得不将cors npm包添加到我的app.js文件中。

然后我不得不改变“api'调用使用服务器的公共ip地址(在本教程的jwt-vanilla.js中),并且当我使用基于OpenStack环境的服务器时,我还必须允许OpenStack中的端口3000。 (有关安装cors的更多详细信息,请参阅以下视频(https://egghead.io/lessons/angularjs-client-setup-for-jwt-authentication

我使用了以下nginx配置:

server {
    listen 80;
    server_name yourdomain.com;

    location /{
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header Host $http_host;
         proxy_set_header X-NginX-Proxy true;
         proxy_pass    http://127.0.0.1:3000/;
    }
}

现在我正在运行nginx并在app.js(端口3000)位置的服务器上启动了节点app.js',而在公共文件夹中我启动了http服务器(npm install http-server -g),运行于8080.