Tag: express

angular-jwt如何解密我的JWT没有秘密?

Auth0团队创build了一个名为“angular-jwt”的jwtHelper类。 这件事成功解码本地JWT没有我在服务器上使用的秘密。 这怎么发生的? 如果他们不安全,那么使用秘密签名/encryption他们有什么意义? encryption令牌的服务器上的函数(使用“jsonwebtoken”): function createToken (user) { return jwt.sign(_.omit(user, 'password'), config.secret, { expiresInMinutes: 60*5 }); } 来自客户的代码: angular .module('sample.home', [ 'ui.router', 'angular-storage', 'angular-jwt' ]) .config(function ($stateProvider) { $stateProvider .state('home', { url: '/', controller: 'HomeCtrl', templateUrl: 'modules/home/home.html', data: { requiresLogin: true } }) }) .controller('HomeCtrl', function homeController ($scope, $http, store, jwtHelper) { $scope.jwt = […]

Express(node.js)使用HTTPS和HTTP

我在node.js上使用express(3.0)框架来路由我的应用程序。 我的大部分应用程序都使用http协议,但是我只想通过https服务一条特定的路线。 这是我的API的一部分,它负责注册和authentication用户。 例如: app.get('/connect', function(req, res){ // Must be on HTTPS, if not redirect to HTTPS }); app.post('/connect', function(req, res){ // Must be on HTTPS }); app.get('/', function(req, res){ // Must be on HTTP }); app.get('/build', function(req, res){ // Must be on HTTP }); 如何在同一个应用程序中使用两者? 我正努力在野外find任何这样的例子。

加快部署Heroku

Heroku太棒了 但每次我部署,Heroku似乎喜欢重新下载和重build所有的软件包。 使用socket.io和mailparser这需要大约3分钟。 有没有办法加快部署过程? 有没有办法告诉Heroku它可以caching这些项目? 或者我可以上传预build的node_modules ?

快速请求被调用两次

为了学习node.js我创build了一个小应用程序,它获取mongoDB中存储的一些rss提要,处理它们并从这些提要中创build一个单一提要(按datesorting)。 它parsing了大约50个RSS提要的列表,大约有1000个博客项目,所以parsing整个项目是相当长的,所以我把下面的req.connection.setTimeout(60*1000); 得到足够长的时间来获取和parsing所有的提要。 一切运行相当好,但要求被称为两次。 (我用wireshark检查,我不认为这是关于favicon这里)。 我真的不明白。 你可以在这里testing你自己: http : //mighty-springs-9162.herokuapp.com/feed/mde/20 (它应该创build一个rss饲料与最后20篇关于“mde”的文章)。 代码在这里: https : //github.com/xseignard/rss-unify 如果我们专注于有趣的部分: 我有一个像这样定义的路线: app.get('/feed/:name/:size?', topics.getFeed); 而topics.getFeed就是这样的: function getFeed(req, res) { // 1 minute timeout to get enough time for the request to be processed req.connection.setTimeout(60*1000); var name = req.params.name; var callback = function(err, topic) { // if the topic has been […]

从Node.js POST到PHP

我正在尝试从Node.js应用程序发布一些数据到PHP脚本。 目前我只是build立一个概念certificate,但我无法把实际的数据转移到PHP端。 请求通过,我得到200回来,但PHP认为$ _POST数组是空的。 这是我的节点代码: // simple end point just for testing exports.testPost = function(request, response) { data = request.body.data; postToPHP(data); response.end(data); } function postToPHP (data) { var http = require('http'); var options = { host : 'localhost', port : 8050, path : '/machines/test/index.php', method : 'POST', headers : { 'Content-Type' : 'application/json', 'Content-Length' : […]

带参数的路由被调用两次?

我正在通过ExpressJS创build一个NodeJS Web应用程序。 我有以下两条路线(其中包括): app.get('/user/reset/verify', function(req, res) { console.log("Executing verification index."); res.render("verify/index"); }); app.get('/user/reset/verify/:email/:token', function(req, res) { console.log("Executing verification change."); res.render("verify/change"); }); 当我进入validation索引页面时,看到“执行validation索引”。 在控制台上打印一次。 但是,当我进入validation更改页面时,我看到“执行validation更改”。 在控制台上打印两次。 我注意到,这是我的应用程序中的路线的趋势。 包含参数的路由总是被执行两次,而没有参数的路由只被(正确)执行一次。 为什么参数路由被执行两次? 正在呈现的视图只包含简单的HTML – 不会导致对页面的另一个请求。 另外,我正在从Chrome浏览器发出这些请求。 平台/版本: NodeJS:0.5.5 windows构build(在Win 7上运行) 快递:2.4.6 连接:1.7.1

Express.jsredirect到HTTPS并发送index.html

我有一个简单的Express.js实例,为单个页面的Angular应用程序提供静态资源。 我在Expressconfiguration中设置了一些中间件,这样所有的路由都会返回index.html,Angular可以从那里加载。 最近,我在Heroku上设置了SSL,我想确保所有来自HTTP的stream量都被redirect到HTTPS。 我试图将这篇文章中的build议解决scheme与我现在所拥有的解决scheme结合起来,但最后却是无尽的redirect循环。 简而言之,我需要将所有stream量从HTTPredirect到HTTPS,并且需要为所有请求发送index.html文件。 我在这里做错了什么? var gzippo = require('gzippo'); var express = require('express'); var morgan = require('morgan'); var app = express(); // set environment variables var env = app.get('env') || 'development'; app.use(morgan('dev')); // serve static assets app.use(gzippo.staticGzip("" + __dirname + "/dist")); app.use("/js", express.static(__dirname + "/dist/scripts")); app.use("/fonts", express.static(__dirname + "/fonts")); app.use("/img", express.static(__dirname + "/dist/assets/images")); app.use("/css", […]

django tastypie和跨域json

在localhost:8000上运行了django dev服务器,在localhost:3000上运行了nodejs服务器。 我想要将json导入到nodejs服务器,但我得到这个错误: XMLHttpRequest无法加载http://127.0.0.1:8000/api/presentation/?format=json 。 Access-Control-Allow-Origin不允许源http:// localhost:3000 这是我第一次进入跨域的乐趣,所以我想方设法摆脱我的深度。 我已经添加到我的节点(expressjs)的路线。 app.all('/', function(req, res){ res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); res.render('index', { title: '…' }); }); 我错过了什么/错在哪里?

Socket.io + NodeJS在Heroku上不起作用

我正在做一个API,它在Heroku上。 但是,我只有在heroku端socket.io有一些问题,当我在本地testing一切顺利。 API是完全独立于前端,所以他们在不同的域(和不同的主机)。 问题是,在生产上,我没有成功地连接sockets… 我有一些问题,所有这些都是关于heroku上的socket.ioconfiguration。 我知道有一些关于这方面的信息的post,但我发现它的post是旧版本的sockets.io或旧版本的heroku(heroku似乎已经改变了过去七月的websockets的东西): 我不知道在heroku上运行socket.io之前是否需要激活一些东西。 我读了一些关于这方面的post,但似乎都是旧的…我试图激活Websockets: $ heroku labs:enable websockets但我得到的回应是: ! No such feature: websockets ! No such feature: websockets 。 我必须指定一个端口,或者Heroku有一个自动的端口吗? 我需要两个连接吗? 一个听POST / GET / PUT / DELETE和另一个sockets? app.js var express = require('express'); var app = module.exports = express(); var port = process.env.PORT || 5000; var port_s = 3000; var server […]

如何在Node.js中从ajax post返回成功

我有这样的function: exports.saveAction = function (req, res) { var conn = mysql.createConnection({ host : nconf.get("database:host"), //port: 3306, user : nconf.get("database:username"), password : nconf.get("database:password"), database : nconf.get("database:database"), multipleStatements: true, //ssl: 'Amazon RDS' }); var action = req.body; conn.query('UPDATE actions SET ? WHERE Id = ?', [action, action.Id], function (err, result) { conn.end(); if (err) throw err; res.writeHead(200, […]