Tag: express

MEAN如何处理authentication?

我想知道基本stream程。 据我所知,当调用loginAPI时, passport.js创build会话并将其存储在mongo中。 谁创build会话? 谁创buildcookie? 快递还是护照? 我读到,当其他请求来了,用户对象被附加到它,使用会话ID。 谁做的? Express服务器或passport.js或其他人?

我使用auth0进行用户身份validation,并且我有一个针对CRUDpost(title,img,desc)的API。 如何进行CRUD API的authentication调用?

我正在构build一个反应的应用程序,并login/authentication用户我使用的是auth0。 在我使用auth0之前,我一直在对我的API进行CRUD调用以发布post。 在使用auth0之前以及之前我有用户的情况下,这也是一样。 现在我使用的是auth0,我已经设置好它,把我在MongoDB中的Users集合中的用户插入。 所以,每个用户现在都有一个我将用来关联到职位的id 。 login后,auth0发送一个令牌(我存储在localStorage的),它看起来是这样的: eyJ0eXAiOiJKV1QiLCJhbGviOdJIUzI1NiJ9.eyJpc3MiOiJodHRwczovLzI4MTMzMC5hdXRoMC5jb20vIiwic3ViIjoiYXV0aDB8NTc4M2VjMjlkYmIxMAEwMTAwNTE1M2VmIiwiYXVkIeoiTzE3MGJkNnlnc3lCODkyY295Y25haVhyVkpQZHBUUlgiLCJleHAiOjE0Njw0NjkyMDQsImlhdCI6MTQ4ODDzMzIwNH0.gte9fxVURQGzOWD1ZF8AB-JachZuIkYmux6WKOZ-fdk 这是我的问题 – 我如何对我的CRUD API进行authentication调用? 也就是说,只有login的用户才能进行API调用。 我没有太多的成功find这个主题的教程。

REST API不会根据标头中的Passport JWT令牌更改用户?

所以我有一个用Node.JS,MongoDB和Express编写的REST API。 我正在使用护照和passport-jwt使用JSON Web令牌进行身份validation,但是当我为不同的用户帐户使用不同的令牌时,请求每次都保存相同的用户。 这里是routes.js中的身份validation端点: // Authenticate the user and get a JSON Web Token to include in the header of future requests. apiRoutes.post('/authenticate', function(req, res) { User.findOne({ email: req.body.email }, function(err, user) { if (err) throw err; if (!user) { res.send({ success: false, message: 'Authentication failed. User not found.' }); } else { // […]

Fabric.js从JSON加载canvas后,在Node服务器上创build图像

过去几天里,我一直在试图弄清楚这个问题。 在我写的应用程序中,用户可以上传两个图像,一个覆盖另一个。 将一个图像放在另一个图像的顶部之后,他们点击一个button,canvas转换为JSON并发送到节点(快速)服务器。 然后通过将JSON数据加载到canvas重新创buildcanvas,使用乘数2调用toDataURL并将数据写入png文件。 router.post('/', function(req, res) { var canvas = fabric.createCanvasForNode(600, 600); canvas.loadFromJSON(req.body, function() { var dataUrl = canvas.toDataURL({ format: 'png', multiplier: 2 }); imageSrc = dataUrl.replace(/^data:image\/png;base64,/, ""); fs.writeFile('hello.png', imageSrc, 'base64', function(err) { console.log('Error: ' + err); }); }); 如果我不使用乘数(即乘数为1),则会按预期创build600x600像素的图像。 但是,当我将倍数设置为2时,为了获得更高分辨率的图像,只有生成的图像的右上angular包含从canvas创build的图像。 PNG图像是截止的 我发现在线资源说这是以前版本的面料的一个问题,我已经看到别人的解决方法,但似乎没有解决我的问题。 任何帮助,build议或资源将不胜感激! 编辑也许我应该包括一个如何将JSONcanvas传递给服务器的示例: var json = JSON.stringify(canvas); var http = new XMLHttpRequest(); […]

Node.JS – 在中间件中获取最终发送的数据

是否有可能在中间件中获取刚刚由我的API发送的数据? 例如,我有一个nodejs服务器与这个中间件: var middleware = function(req, res, next) { res.on('finish', function() { console.log(res.statusCode); // display 200 console.log(res.body); // display empty data }); next(); }; 而我的API: app.get('/url', function(req, res) { res.status(200).json({name:'john'}).end(); }); 但是在我的中间件中,我只能得到statusCode'200',而不是对象{name:'john'} 。 任何人都可以帮助我? 谢谢。

显示类别与快速蒙戈

我有一个像mongo一样的数据 {'id':id,'name':'root','child'=['id1','id2','id3']} 为CH1: {'id':id1,'name':'chi1','child'=['id11','id12','id13']} 卡方 {'id':id1,'name':'chi2','child'=['id21','id22','id23']} chi11 {'id':id1,'name':'chi11','child'=['id111','id112','id113']} 现在我想显示类似的模板: root.name->chi1.name->chi11.name ->chi2.name 如果我们可以查询孩子的父母。

试图找出用于REST API的mongoose关系编码

这是一个愚蠢的问题,但我试图通过谷歌,代码snippits,教程包围我的头,所有这些都导致我的例子,模型太浅,我想要做的代码。 我有一个应用程序,我想开发数据是父母和孩子的forms: – – 组织 – 属于这些组织的项目 – 属于这些项目的发布 等等,但是我并不完全理解如何在后面的expression式中编写路由,我来自SQL关系背景。 我使用cookies,还是部分路线? 我知道如何build立模型,从我的理解,使用: var organisationSchema = ({ name: String, email: String, description: String, users: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }] }); 为组织和 var projectSchema = ({ name: String, description: String, users: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }] } 为项目,但如何设置我的邮政路线将项目添加到正确的组织 router.route('/api/project') .post(function(req, res){ project = new Project(); […]

节点js + Mysql:无法排队,因为致命的错误

我运行一个应用程序与节点js(更具体地表示js),我保存一些数据与MySQL客户端。 它完美的工作了一段时间没有问题,但所有的suddden我得到这些erros: 跟踪:无法排队致命错误后退出。 在Protocol._enqueue(C:\ nodejs \ 12-coiffure \ node_modules \ mysql \ lib \)下的Protocol._validateEnqueue(C:\ nodejs \ 12-coiffure \ node_modules \ mysql \ lib \ protocol \ Protocol.js:218:11) (C:\ nodejs \ 12-coiffure \ node_modules \ mysql \ lib \ protocol \ Protocol.js:88:23)在PoolConnection.end(Protocol \ PoolConnection._removeFromPool上的Pool._purgeConnection(C:\ nodejs \ 12-coiffure \ node_modules \ mysql \ lib \ Pool.js:259:16) (C:\ […]

从父节点进程(PM2,NodeJS)运行更新脚本

我有一个名为update.sh的脚本更新服务器。 问题在于; 当我停止PM2进程时,它结束了bash进程(?)。 我无法弄清楚如何从没有链接到父级的父级产生一个进程。 :-S update.sh #!/bin/bash # Check we are not already updating. if [ -f update.lock ]; then echo "Already updating. Locked." exit fi # Make the log file. rm update.log touch update.log # Create update lock. touch update.lock echo "Cleaning up" | tee update.log rm -rf the-last-word rm -rf Server echo "Retreving […]

使用$ .get定期轮询Express服务器

有一台带服务器时间发生器的Express服务器。 生成的时间被发送到客户端页面gtm.hbs 。 我如何从客户端页面定期轮询服务器? 我正在寻找一个Ajax解决scheme。 以下是存储在\routes\getTime.js的服务器端代码: module.exports = { sendCurrentUTCTimeString: function(req, res, next) { var currentUTCTime = new Date(); var currentUTCHours = currentUTCTime.getUTCHours(); var currentUTCMinutes = currentUTCTime.getUTCMinutes(); var currentUTCSeconds = currentUTCTime.getUTCSeconds(); currentUTCHours = ( currentUTCHours < 10 ? "0" : "" ) + currentUTCHours; currentUTCMinutes = ( currentUTCMinutes < 10 ? "0" : "" ) […]