Tag: javascript

Express-mysql-session阻止passport deserializeUser运行

我有一个应用程序使用passport.js通过Facebooklogin用户,并试图使用express-mysql-session来保持其login状态。 如果我不包含express-mysql-session代码,那么护照serializeUser和deserializeUser函数就可以正常工作了…但是当我试图用express-mysql-session存储会话的代码时,deserializeUser函数不会不会受到打击,用户永远不会正确login。 server.js文件 var express = require('express'); var mysql = require('mysql'); var passport = require('passport'); var session = require('express-session'); var MySQLStore = require('express-mysql-session')(session); if (typeof process.env.OPENSHIFT_MYSQL_DB_HOST === "undefined"){ var options = { host : 'localhost', port : '3307', user : 'user', password : 'password', database : 'database', socketpath: '/var/run/mysqld/mysqld.sock' } } else { var options […]

保护我的Node.js应用程序的REST API?

我可以在我的REST API上做一些帮助。 我正在写一个Node.js应用程序,它使用Express,MongoDB,并在客户端有Backbone.js。 我花了最后两天试图解决所有这些,没有太多的运气。 我已经检查过 保护REST API 使用OAuth保护我的REST API,同时仍允许通过第三方OAuth提供者进行身份validation(使用DotNetOpenAuth) http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/ http://tesoriere.com/2011/10/10/node.js-getting-oauth-up-and-working-using-express.js-and-railway.js/ 我想保持我的后端和前端尽可能分开,所以我想使用精心devise的REST API会很好。 我的想法是,如果我花时间去开发一个iPhone应用程序(或类似的东西),它可以使用API​​来访问数据。 但是,我希望这是安全的。 用户已经login到我的networking应用程序,我想确保我的API是安全的。 我读了关于OAuth,OAuth 2.0,OpenID,Hmac,哈希等…我想避免使用外部login(Facebook / Twitter /等)我想注册和login在我的应用程序/服务器。 …但我仍然在这里困惑。 也许是在深夜,或者我的大脑只是被炸,但我真的可以采取一些措施,在这里做什么。 我有什么步骤来创build一个安全的API? 任何帮助,任何信息,任何示例,步骤或任何东西都会很棒。 请帮忙!

在node.js ES6variables导入名称?

是否有可能在使用ES6导入时将某些东西导入到提供variables名称的模块中? 也就是说,我想在运行时导入一些模块,具体取决于configuration中提供的值: import something from './utils/' + variableName;

如何使用nodejs打开默认浏览器并导航到特定的URL

我正在使用Node.js写一个应用程序 我想创build的function之一是打开默认的Web浏览器,并导航到一个特定的URL。 我希望它是可移植的,以便在Windows / Mac / Linux上运行。

在NodeJS中获取Mongo数据库中插入文档的_id

我使用NodeJS在MongoDB中插入文档。 使用collection.insert我可以像这样的代码中插入一个文档到数据库中: // … collection.insert(objectToInsert, function(err){ if (err) return; // Object inserted successfully. var objectId; // = ??? }); // … 我怎样才能得到插入对象的_id ? 有没有办法让_id没有获取最新的对象_id ? 假设在同一时间很多人访问数据库,我不能确定最新的ID是插入对象的ID。

在生产中使用babel-node可以吗?

我一直在开发一个使用babel-node的网站,并使用babelify转换进行browserify,以支持ES6语法。 我只是想知道,我可以在生产中运行这个作为 babel-node server 而不是 node server 我还有什么其他的select在节点中运行ES6? 这里是我正在运行的构build和开始的命令 // npm run build browserify -t [babelify] client.js > public/js/bundle.js", // npm start babel-node server.js" 这是我的开发依赖 "babel": "^4.0.1", "babelify": "^5.0.3", "browserify": "^8.0.3"

Mongoose.js:通过用户名LIKE值查找用户

我喜欢通过寻找一个名为value的用户来在mongoDb中find一个用户。 问题在于: username: 'peter' 是,如果用户名是“彼得”,或“佩特”..或类似的东西,我不会find它。 所以我想要像SQL一样 SELECT * FROM users WHERE username LIKE 'peter' 希望你们能得到我所要求的? 短:mongoose.js / mongodb中的“字段LIKE值”

有没有办法在ES6 / Node 4中创build接口?

ES6在节点4中是完全可用的。我想知道它是否包含一个定义方法合约的接口的概念,就像在MyClass implements MyInterface 。 我找不到我的谷歌search,但也许有一个很好的技巧或解决方法可用。

Access-Control-Allow-Origin不允许源http:// localhost:3000

XMLHttpRequest cannot load http://localhost:8080/api/test. Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin. 我阅读了关于跨域的Ajax请求,并了解了底层的安全问题。 就我而言,2台服务器在本地运行,并且喜欢在testing期间启用跨域请求。 localhost:8080 – Google Appengine dev server localhost:3000 – Node.js server 我正在向localhost:8080 – GAE server发出一个ajax请求,而我的页面是从节点服务器加载的。 什么是最简单,最安全的(不想用disable-web-security选项启动Chrome)。 如果我必须更改'Content-Type' ,我应该在节点服务器上执行吗? 怎么样?

nodejs中的单例模式 – 是否需要?

我最近遇到了关于如何在Node.js中编写单例的文章。 我知道require的文档说: 模块在第一次加载后被caching。 多次调用require('foo')可能不会导致模块代码被多次执行。 所以看起来,每个需要的模块都可以很容易地使用一个单例,而不需要单独的样板代码。 题: 上面的文章是否提供了创build单例的解决scheme?