Tag: 令牌

如何使用身份validation令牌访问用户数据

我想了解基于令牌的身份validation策略如何使用令牌(例如:JWT)来访问特定于用户的数据。 我在search结果中看到的所有内容都是用户提供用户名和密码的部分,随后每个后续的调用创build并validation令牌。 不要说我有两个MongoDB集合的Node.JS服务: 用户和UserMessages 。 UserMessages中的每个条目都包含一个UserID和一个Message 。 如果经过身份validation的用户想要查看与该用户有关的所有消息,我如何(以编程方式)知道如何过滤正确的消息? 我如何使令牌和用户身份 (例如UserID或其他任何有助于识别用户的身份)之间的关联,以便在下一步中查询消息集合? 我只是想了解这个概念。 我找不到任何地方的代码中获得用户身份的明确例子。 例如 : apiRoutes.use(function(req, res, next) { var token = req.body.token || req.param('token') || req.headers['x-access-token']; if (token) { jwt.verify(token, app.get('superSecret'), function(err, decoded) { if (err) { return res.json({ success: false, message: 'Failed to authenticate token.' }); } else { req.decoded = decoded; next(); } […]

正确的方式将Facebook令牌从客户端发送到服务器

我不知道如何将用户的fb令牌从客户端传送到我的服务器。 我目前的做法如下: 用户打开网页并login到FB; 令牌从FB获得; 将用户客户端redirect到/ api /:令牌 使用express + node + app.get("/api/:token")来获取服务器上的令牌 然而,这看起来并不安全,因为当我redirect用户时,他的令牌在浏览器上清晰可见,任何人都可以尝试猜测令牌来冒充其他用户。 问:我如何安全地将用户的fb令牌从客户端发送到我的服务器? 我应该使用ajax文章吗? 感谢您的帮助! :d

如何与快递和socket.ioauthentication与TOKENS而不是与COOKIES。

我正在构build一个实时移动应用程序(本机),我有兴趣从用户login屏幕启动应用程序,然后继续。 我想我需要Express + primus与socket.io(或sockjs)+ passport.socketio + redis(不是100%确定我需要redis)来build立我的后端。 我甚至发现这个一步一步的教程是非常有帮助的,它使我一步一步地做出一个安全的API。 我的问题是双重的: 我怎样才能调整这个例子来使用TOKENS而不是cookies(因为我正在构build一个原生的移动应用程序,而不是一个浏览器的networking应用程序), 并根据这个更安全 。 如何使用socket.io绑定express – 换句话说,socket.io如何知道用户是否被authentication? 我欢迎任何意见或build议。 谢谢。

如何使用feathersjs-authentication将JWT令牌发送到客户端?

我在我的feathersjs REST-API应用程序中使用了本地身份validation ,但是在用户通过身份validation之后,而不是向我发送身份validation令牌 ,羽毛会发送以下HTML作为对身份validation请求的响应: <body> <img class="logo" src="alongbase64string" alt="Feathers Logo"> <main> <h1 class="center-text">Success</h1> <h3 class="center-text">You are now logged in. We've stored your JWT in a cookie with the name <span class="italic">"feathers-jwt"</span> for you. It is: </h3> <pre id="token"></pre> </main> <script type="text/javascript"> function getCookie(name) { var value = "; " + document.cookie; var parts = value.split("; […]

Auth0 / userinfo端点返回未经授权的错误

即使在Node.js应用程序中传递不记名标记,它也会导致未经授权的结果错误。 function getUser(authData){ var postData = querystring.stringify({ authorization: authData }); var options = { host: 'pole.auth0.com', method: 'GET', path: '/userinfo' }; //make request httpsRequest(postData, options) .then(function(result) { // success res.status(201).send({ 'success': true }); }, function(err) { res.status(500).send({ 'success': false, 'reasonCode': "Internal error." }); }); }; 帮手function: function httpsRequest (data, options) { return new Promise(function (resolve, […]

基于令牌的身份validation和在Nodejs中的Facebook身份validation

我正在使用MEAN堆栈。 前端和后端是独立的项目。 我的后端nodejs REST API使用基于令牌的身份validation(用户使用用户名和密码凭据login,然后服务器将生成一个JWT进一步请求。)我也有一个中间件来validation令牌。 现在我需要允许用户使用Facebooklogin,我改变基于令牌的身份validation之前使用passport-facebook策略。 这是基于会话的authentication。 那么当用户通过Facebook成功login时,如何生成令牌? 使用带有令牌的Facebook身份validation在npm中是否有任何特定的包? 谢谢。

令牌不是在nodejs中创build的

我有一个函数,从MySQL数据库中select用户名,并返回结果发布请求如下: function userAuthentication(user){ var deferred = Q.defer(); pool.getConnection(function(err, connection) { if (err) { var dbError = new Error('No db connection'); console.log(dbError); } else { var selectUserName = 'SELECT * FROM User WHERE username= '+connection.escape(user)+' '; connection.query(selectUserName, function(error, rows){ if(error){ console.log(error); deferred.reject(error); } else if(rows.length === 0){ var countError = new Error('No User Found'); console.log ("Database.js […]

Stripe API:没有标识符X(stripe.charges.create)

节点/expression式相当新颖,我试图用Stripe 3.3.2和checkout.js来获得一个简单的虚拟电荷。 一旦结帐表单被提交,令牌回到后端没有问题; 使用该标记创build费用,但是,结果如下: 没有标识tok_xxxxxxxxxxxxxxxxxxxxxxxx 我在这里错过了什么? /views/premium.mustache <a id="subscribe" href="#">Pay with Card</a> <script> // Define handler to be called when Stripe returns a card token function onReceiveToken(token, args) { // Submit token to server so it can charge the card $.ajax({ url: '/premium/charge', type: 'POST', data: { stripeToken: token } }); } // Configure Checkout […]

在Node.js中渲染json时,CSRF令牌不匹配

我正在使用lusca来处理我的应用程序的csrf攻击。 在我的快速应用程序,当我呈现一个HTML页面,并通过_csrf令牌放置在一个隐藏的input一切都是正确的,因为lusca检查html _csrf令牌,并find匹配。 我的控制器: response.render("root/home", { _csrf: response.locals._csrf }); 我的html页面: <input type="hidden" name="_csrf" value="{{_csrf}}" /> 但是当我想导出一个POST请求的JSON响应,我不能发送我的_csrf令牌,所以lusca无法find匹配(我认为问题在这里),并给我这个错误: 错误:CSRF令牌不匹配 我的控制器: response.json({ status: "success" }); 更新: csrf的秘密 (不是令牌,介意你)正在重新生成或删除初始GET和POST之间的一段时间。 唯一可行的方法是在会话中存储为_csrfSecret的值在请求之间被更改或删除。 确保你的会议正常工作。 从这个来源 但我仍然无法find解决scheme! 更新2: 我们有两个策略来生成csrf令牌… 每个会话和每个请求 。 在我的应用程序令牌生成每个请求。 问题是当我第一次请求新的令牌时会产生秘密。 这意味着新的令牌和秘密相匹配。 但当我保存令牌,并发送一个AJAX请求(在标题或正文); 这ajax请求使旧的秘密过期,并将生成一个新的。 所以我的令牌不符合它。

正确的护照策略匿名移动应用程序

我正在build立一个像yik牦牛这样的匿名应用程序,并且想要问一下用什么合适的护照策略来进行身份validation。 我目前正在使用该设备的UUID。 我看了当地的策略,这需要一个用户名,密码,它是基于会话的(我实现令牌的基础,所以我的API不开放)。 也就是说,我会执行passport-http的基本策略,完全不考虑密码,只使​​用UUID作为身份validation? 请帮忙! 我不完全确定如何解决这个问题。 不过,我知道我不希望用户login。 谢谢!