Tag: 基本authentication

使用app.set('app_secret',data)将密钥存储在nodejs中是否安全?

我正在创build一个应用程序,我在“应用程序”表中存储数据库中的应用程序密钥。 数据库连接后,使用ExpressJS app.set('app_secret',data)将密钥存储在nodejs中是否安全? 由于只有一次调用,我在这里设置我的值,以便我可以使用这些秘密来validation用户请求,我可以从express中间件的req.app.get('app_secret') 我不认为,有任何使用“节点caching”模块来存储这些秘密。 一种方法是存储在json文件中。 请提出一些最佳实践来完成此任务。 我在正确的轨道上?

PHP – 计算正确的HMAC签名为nodejs脚本

所以我正在处理一个PHP脚本,查询使用HMAC身份validation标头的API。 不过,我一直在试图正确编码HMAC签名。 我有一个预先存在的nodejs脚本作为模板工作。 在nodejs脚本中,使用以下方法计算HMAC签名: var crypto = require('crypto'); var hmac = []; hmac.secret = 'ODc0YTM3YzUxODFlMWQ1YTdhMGQwY2NiZmE1N2Y1ODdjYzM5NTgyMDJhZjVkYTE4MmQxYzQ5ODk0M2QzNWQxYw=='; hmac.timestamp = 1457326475000; hmac.path = '/account/'; hmac.message = hmac.path +'\n' + hmac.timestamp; var sig = crypto.createHmac('sha512', new Buffer(hmac.secret, 'base64')); hmac.signature = sig.update(hmac.message).digest('base64'); console.log(hmac); 这正确地计算HMAC签名为:bWjIFFtFmWnj0 + xHLW2uWVa6M6DpbIV81uyUWwRFCJUg + 0Xyt40QWZWQjGvfPUB / JbjGZHUoso0Qv5JHMYEv3A ==。 同时,在PHP中,我正在使用: <?php $hmac['secret'] = 'ODc0YTM3YzUxODFlMWQ1YTdhMGQwY2NiZmE1N2Y1ODdjYzM5NTgyMDJhZjVkYTE4MmQxYzQ5ODk0M2QzNWQxYw=='; $hmac['nonce'] = '1457326475000'; $hmac['path'] […]

如何使用节点js中的API密钥从REST api获取数据?

我在我的节点服务器中使用第三方REST API。 第三方API提供者给了我一个API密钥和cURL中的一个例子,如下所示: $ curl -u APIKey@https://xyzsite.com/api/v1/users 我不知道我在节点js如何做。 我尝试过,但没有运气。 我明白了 var options = { host: "xyzsite.com", path: "/api/v1/users", headers: { "Authorization": "Basic " + myAPIKey } }; https.get(options, function(res, error) { var body = ""; res.on('data', function(data) { body += data; }); res.on('end', function() { console.log(body); }); res.on('error', function(e) { console.log(e.message); }); }); 控制台消息 { […]

REST | 智威汤逊| 身份validation:如何validation安全资源的权限

基于令牌的身份validation:智威汤逊? 检查。 GET /items/:id …怎么样? 这是一个小问题,但可能是一个很大的答案,因为我对这个有点新… 一旦我为客户提供了一个JWT,他们希望获得一个资源 – validation客户端的逻辑stream程是什么样的? 换句话说,我有一个JWT 有效载荷如… { … "sub": user.id … } …和客户端需要访问项目 998 /api/items/:id … 我目前的做法如下所示。 // ItemsController.lang | 'GET /api/items/:id' var userId = jwt.decode(token).sub; var isValid = checkUserIdInDatabase(userId); var secureResource = ORM.findOne({ user: userId, id: request.itemId }); response.send(secureResource); 与此同时,当客户注册/进入时,我向他们提供了一个看起来像这样的回应… { user: { id: 998, email: 'no@username.com', preferences: […] […]

如果用户未经过validation,则显示公共逻辑React JS和Node API

如果用户没有login,我怎样才能显示公共(即:家庭,关于,身份validation的东西)? 我知道SPA并不意味着刷新,但我希望它改变页面上的大部分脚本。 环境:在单独的项目中使用ReactJS,WebPack和现有的NodeJS API。 我浏览了Webpack文档,了解它只会加载所需的脚本和组件,但所有脚本都可以通过“查看页面源代码”来查看。 如果我理解错了,请纠正我。

带有authentication的mongoose造成超时

所以我们有一个有趣的问题。 我们希望在MongoDB层添加authentication,以提高安全性。 但我们没有得到有利的结果。 预安装 以root身份使用mongo shell(针对admin表) 切换到所需的数据库(applicationdb) 执行db.createUser() validation用户已成功创build {“_id”:“applicationdb.appuser”,“user”:“appuser”,“db”:“applicationdb”,“roles”:[{“role”:“readWrite”,“db”:“applicationdb”}] } 情况1: 更改mongodb.conf,auth = true 重新启动Mongod服务 连接mongoose使用: mongoose.connect( '的mongodb:// APPUSER:password@xx.xxx.xxx.xxx:27017 / applicationdb'); 没有收到错误的连接,所以尝试通过Mongoose执行一个GET导致操作超时没有任何错误(至less我可以find) 情景2: 更改mongodb.conf,auth = false 重新启动Mongod服务 连接mongoose使用: mongoose.connect( '的mongodb://xx.xxx.xxx.xxx:27017 / applicationdb'); 没有收到连接错误,所以尝试通过Mongoose执行一个GET,它会成功返回文档 为什么我们在MongoDB中使用身份validation时得到这个超时并且从来没有完成请求? 任何帮助将是伟大的,我们在这一个损失!

我使用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这个主题的教程。

Firebase 3 node.js服务器authentication是否会改变?

现在好像唯一的方法来validation一个node.js服务器是通过传递一个服务帐户的私钥,这意味着私钥在RAM中,这是显然不会通过安全审查。 这种方法是否有时很快会改变,像传递一个有效期的令牌,可以在其他地方以安全的方式生成。 我正在谈论Firebase 2身份validation(但不是具有共享密钥的HS256),他们很想从Firebase的工程师团队获得评论。 谢谢

如何validation/授权环回中的快速路由

我刚刚创build了一个回送应用程序,并为用户authentication/授权扩展了User模型。 我试图检查用户是否当前login或不从我的快速路由,所以我可以redirect用户/login如果用户没有login。 到目前为止,似乎回环只validation/授权暴露的模型方法,如/user/update 。 我无法find任何关于如何获得回送authentication/授权我定义的快速路线。 提前致谢

OAuth2从数据库中删除令牌

我正在尝试为支持移动,桌面和networking应用的REST API实现OAuth2。 我已阅读第6章。刷新 Hardt,D.,Ed。,“OAuth 2.0授权框架”,RFC 6749,DOI 10.17487 / RFC6749,2012年10月 的访问令牌 根据RFC,访问令牌和刷新令牌保存到数据库,我正在使用MySQL。 我的问题是我应该在哪一点/ OAuth2的活动中删除所有过期的访问令牌和刷新令牌。 我应该为此运行cron作业吗?