Tag: 表示

为什么在使用Passport / Node Express的OAuth2Strategy进行身份validation时遇到TokenError?

我试图与Express(4)一起使用Passport JS的OAuth2Strategy。 我redirect到login后,它成功导航回到我的callbackurl,在这一点上,我得到以下错误: TokenError: Invalid client or client credentials at OAuth2Strategy.parseErrorResponse (/www/az-avatarz-server/node_modules/passport-oauth/node_modules/passport-oauth2/lib/strategy.js:298:12) at OAuth2Strategy._createOAuthError (/www/az-avatarz-server/node_modules/passport-oauth/node_modules/passport-oauth2/lib/strategy.js:345:16) at /www/az-avatarz-server/node_modules/passport-oauth/node_modules/passport-oauth2/lib/strategy.js:171:43 at /www/az-avatarz-server/node_modules/passport-oauth/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:177:18 at passBackControl (/www/az-avatarz-server/node_modules/passport-oauth/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:124:9) at IncomingMessage.<anonymous> (/www/az-avatarz-server/node_modules/passport-oauth/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:143:7) at IncomingMessage.EventEmitter.emit (events.js:117:20) at _stream_readable.js:919:16 at process._tickDomainCallback (node.js:463:13) 我的护照configuration如下: passport.use("avatarz", new OAuth2Strategy({ authorizationURL: authorizationURL, tokenURL: tokenURL, clientID: clientID, clientSecret: clientSecret, callbackURL: callbackURL }, function (accessToken, refreshToken, profile, done) { User.find({ […]

用passport.js进行简单的authentication变成无限循环

我敢肯定,我正在做一些错误的事情,因为我对这项技术缺乏经验。 所以在这里我试图validation我的用户。 在server.js我有以下几点: var express = require('express'); var app = express(); var port = process.env.PORT || 8080; //var configDB = require('./config/database.js'); require('./config/environement.js')(app, express); require('./config/routes.client.js')(app); //setting all modules routes require('./api/oAuth/routes.js')(app); app.listen(port); 在environement.js中: module.exports = function(app, express) { app.configure(function() { var path = require('path'); var mongoose = require('mongoose'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; /* […]

Express.js 4.0 – 为每个路由器使用单独的视图目录

我使用Express 4 路由器分离出两种不同的应用程序function。 每个应用程序函数都有自己的一套ejs视图模板,名称相互冲突(例如都有一个search.ejs )。 我如何指定路由器只使用特定的视图目录来渲染视图? 例如,视图目录如下所示: views/ app1/ – search.ejs – index.ejs app2/ – search.ejs – index.ejs

如何使用Passport.js和节点单页面的应用程序

我不认为有这样的问题让我恼火。 似乎有0个地方看起来或回答这个。 我想要做的就是获得护照拦截对“/ login”和“/ getloginStatus”的调用。 login时,我只想使用Json对象作为{username / password}的参数。 当我login时,我只想返回true / false,如果用户在他们的浏览器中有一个身份validation票证。 这是我有,但它丝毫不奏效,一半的问题似乎是我的本地战略实施永远不会被称为…. var passport = require('passport') , LocalStrategy = require('passport-local').Strategy; passport.use(new LocalStrategy( function(username, password, done) { console.log('this NEVER gets called'); } )); app.post('/api/authentication/login', function(req, res, next) { passport.authenticate('local', function(err, user, info) { console.log('this does get called but so what?'); if (err) { return next(err); } […]

node.js进程的内存消耗不断增加

我使用express制作了一个简单的web服务器: var express = require('express'); var app = express(); var route = express.Router(); route.get('/foo', function(req, res) { console.log(req.url); res.json(200, {'status':'OK'}); }); app.use('/api', route); app.use(express.static(__dirname)); app.listen(8080); 我有一个客户端运行,每秒都会向服务器发送GET请求。 如果我看看节点进程,它以16 MB大小开始。 在14个小时之后,它已经在50 MB的大小,并且还在慢慢地增长。 我启动了节点进程: node server.js –max-old-space-size 1 我使用节点0.10.29和expression式4.5.1。 networking服务器应该在Raspi上全天候运行,我担心,几周后,我的内存不足了。

如何删除Express 4中的路线?

我有这样的路线: app.route('/internal/api/services').get(function(req, res, next) { var query = servicesModel.find(null); query.exec(function (err, services) { if (err) { throw err; } console.log("getting all services"); res.json(services); }); }); 我如何以编程方式通过path删除此路线?

Rails content_for node.js中的等价物

有没有一种方法可以使用node.js在Javascript中使用类似content_for Javascript? 我已经搜查,但迄今没有发现任何东西。

Node Express说EADDRINUSE但端口是免费的

当试图开始我的节点快递服务,我遇到了臭名昭着的错误“听EADDRINUSE”。 这里是我试图调用listen的那一行: var server = app.listen(3000, function() { console.log("listening on port %d", server.address().port); }); 事情是,我找不到任何其他节点进程正在运行,也没有任何显示在端口3000上运行。 以下是我得到的结果: $ ps aux | grep node ec2-user 7780 0.0 0.0 110280 848 pts/1 S+ 17:41 0:00 grep node $ nestat -anp | grep 3000 <nothing> 这是相当莫名其妙的。 我可以尝试回收箱子,但它运行的是现场,我不愿意这样做。 还有什么我可以做的,试图解决这个问题? 编辑:谢谢,阿里,build议显而易见的事情,我不知何故错过了。 我现在在3300端口上运行。但是,当我检查netstat时,我也没有看到3300。 这暗示着我有一些运行在3000上的stream程,我不知道该如何find。 为了logging,这是一个AWS Linux AMI。

Mandrill:条件合并标记在呈现模板时不起作用

我已经尝试了条件合并标签(即像| IF:MY_NUM!= 0 | ),它发送电子邮件时按预期工作。 但是,当我尝试渲染一个模板,给定相同的global_merge_vars和merge_vars,IF合并标记块内的所有内容只是空白。 我得到了呈现的html代码,并使用ExpressJS进行渲染。 我输了什么东西?

快速app.get()创build新的虚拟目录 – 我不想这样做

我只是把我的路由从查询string改为一种平静的API。 之前: http://www.server.de/?item=1234 后: http://www.server.de/item/1234 我用Express将这些请求路由如下: app.get('/item/:itemID', function(req, res){ var itemID = req.param('itemID'); res.sendfile(__dirname + '/public/application.html'); }); 每个文件, application.html要加载(像样式,图像,javascripts …)被保存在一个子目录assets/…路由改变后,他们被search在“虚拟”目录item/assets/…当然返回404 (直到我改变.hmtl文件中的path)。 如何在不改变path的整个上下文的情况下路由这些URL? 编辑: 观看Tim Coopers的评论。 重新定义.html文件中的path是绝对的。