Tag: 令牌

将数据安全地存储在Node CLI应用程序中

我目前正在编写一个NodeJS命令行应用程序。 该应用程序进行API调用,并返回一些数据给用户。 鉴于这是一个公共API,用户需要一个API令牌。 这个CLI将通过npm i -g super-cool-api-cli在用户的机器上全局安装。 用户第一次运行CLI时,系统会提示input令牌,然后将其存储起来,以便随后每次运行令牌时都不需要input令牌。我也为用户提供了一种重置它的方法。 我将它存储在我的CLI模块的实际目录中,正如所述,它是全局安装的,它看起来像这样: fs.writeFile( __dirname+'/.token.json', JSON.stringify( { "token": token }, null, 2 ), 'utf8', (e)=>{ // error handling and whatever }); 我将文件命名为.token.json ,使用一个点来默认隐藏文件。 我想我问的是,如果在NodeJS命令行应用程序中存储更好/更安全的方式来存储敏感信息,那么您将运行多次。 我想过使用像环境variables这样的东西,但似乎在这个过程结束时会过期。 安全考虑是我有点缺乏的一项技能,但是大大希望了解更多,所以提前谢谢你的提示。

什么使string/令牌密码安全?

如果您需要生成一个string/令牌来validation将来的请求(例如API密钥,电子邮件确认URL等),应考虑哪些因素? 尤其是 是什么让string“安全”/“很难猜到”? 如何测量/估计“安全量”? 那里的主要标准是什么? 一个实际的例子 我们从NodeJS中获取这两个输出string。 string1 (通过节点密码 ) var crypto = require('crypto'); crypto.randomBytes(48, function (ex, buf) { console.log(buf.toString('hex')); }); string2 (通过节点UUID ) var uuid = require('node-uuid'); console.log(uuid.v4()); 基于上述概念,哪一个更安全,为什么? 另外,请随时提出有关这个主题的任何好的介绍材料,因为我不容易find关于这个在线的文章。

Nodejs Restful Auth

我是新的Nodejs,我正在做一个resttify服务器。 所以,我有一个场景,我有很多设备(具有唯一的ID)通过rest更新数据。 我想要做的是validation他们,并给一个身份validation令牌。 像这样的东西: 第一次:uri / api / auth – >得到令牌。 然后:使用令牌和更新产品的uri / api / product / …. – > 我试图使用restify-node-token,但我没有成功。

authenticationsocket io连接

我如何authentication一个socket.io连接? 我的应用程序使用来自另一台服务器(python)的login端点来获取令牌,每当用户在节点端打开一个套接字连接时,如何使用该令牌? io.on('connection', function(socket) { socket.on('message', function(message) { io.emit('message', message); }); }); 而客户端: var token = sessionStorage.token; var socket = io.connect('http://localhost:3000', { query: 'token=' + token }); 如果令牌是在python中创build的: token = jwt.encode(payload, SECRET_KEY, algorithm='HS256') 我怎样才能使用这个令牌来validation节点中的套接字连接?

保存并从本地存储获取快速js令牌

即时通讯使用与Express.js的节点,并尝试使用JWT进行身份validation,用户login后生成一个令牌,并将其保存到本地存储,但我不知道如何获取身份validation的令牌。 这是即时通讯使用的代码: login视图: $.ajax({ type: 'POST', url: base_url + "login", data: postData, dataType: 'json', success: function(data){ // console.log(data1); // alert(data); _(data); if(data.success === false){ showError(data.msg); }else{ showError(data.msg); window.localStorage.setItem("authToken", data.token); var token = window.localStorage.getItem('authToken'); if (token) { $.ajaxSetup({ headers: { 'x-access-token': token } }); } } } }); 这是在访问任何路由之前使用检查的路由validation: router.use(function(req, res, next){ var token = req.headers['x-access-token']; […]

使用passport.js中的令牌validation电子邮件

我只是寻找解决scheme,它使validation电子邮件与令牌为我的本地aumentation在passport.js有一些插件或节点的组件可以让我validationeasyer? 或者我必须自己做? 我的控制器 exports.postSignup = function(req, res, next) { req.assert('email', 'Email is not valid').isEmail(); req.assert('password', 'Password must be at least 4 characters long').len(4); req.assert('confirmPassword', 'Passwords do not match').equals(req.body.password); var errors = req.validationErrors(); if (errors) { req.flash('errors', errors); return res.redirect('/signup'); } var user = User.build({ email: req.body.email, password: req.body.password, }); User .find({ where: { email: req.body.email […]

我应该如何存储由RESTful API生成的令牌?

我已经构build了一个API来为login的用户生成身份validation令牌。此时,我还有一个用Node.JS编写的客户端应用程序。 当我使用用户证书从客户端应用程序向API发出请求时,我得到身份validation令牌:我应该如何将其存储在客户端应用程序中? 我不应该每次我想要API的请求时要求一个令牌,对吗? 我想把这个标记放入Cookie中,但我认为这不是最好的解决scheme。 你会推荐什么?

什么是生成login令牌的最佳方式? 这种身份validation方法容易受到攻击吗?

我必须在基于Lithium(PHP框架)的应用程序中实现login令牌。 两个原因: 我想有一个“记住我”的function。 我还需要在服务器上跟踪login的方法,以便我可以validationNode.js套接字服务器上的身份validation用户,如下所示: 用户请求一个页面 服务器在HTML中返回一个带有会话标记的视图 客户端JS读取令牌并将其发送到node.js服务器,尝试通过Web套接字build立连接。 服务器收到连接请求并validation发送给它的令牌与PHP服务器。 根据结果​​允许或拒绝连接。 所以这是一个两部分的问题,只是为了certificate我不是白痴,因为这个网站的安全性比平常高。 这是创buildlogin令牌的合理方式吗? <?php // String::hash() generates a sha512 (by default) hash. String::hash(time() . $user['username']); ?> 我提出的web套接字authentication系统是否理智? 你能看到出现的任何问题或更有效的方法吗?

Nodemailer / Gmail – 什么是一个刷新令牌,我如何得到一个?

我正在尝试使用nodemailer在节点应用程序中做一个简单的联系表单。 我希望所有的味精都能从我为此目的而创build的Gmail帐户发送到我的个人邮件。 在客户端,我所做的只是获取客户的名称/邮件/消息并将其发送到服务器。 它在本地正常工作,但部署时失效(在heroku btw)。 经过快速search,似乎我必须从谷歌开发者控制台生成一个ClientId和ClientSecret – 我做了 – 但是当涉及到生成一个“刷新令牌”,我完全失去了。 var smtpTransport = nodemailer.createTransport("SMTP",{ service:"Gmail", auth:{ XOAuth2: { user:"myaccount@gmail.com", clientId:"", clientSecret:"", refreshToken:"" } } }); 我很困惑 :什么是一个刷新令牌,我怎么得到一个?