Tag: jwt

如何发出和接收使用socketio-jwt进行身份validation

当客户端有令牌(由Laravel提供的jwt)时,我的套接字工作正常,但是,当客户端尚未validation时需要与客户端一起工作,我想要的东西是: io.sockets .on('connection', socketioJwt.authorize({ secret: process.env.JWT_SECRET, timeout: 15000 // 15 seconds to send the authentication message })) .on('authenticated', function(socket) { console.log('Authenticated!!'); // This works: socket.on('setDataRegistered', function(datos) { console.log('Registering!'); }); }) // This doesn't works: .on('config', function(socket) { console.log('A client wants to be configured before authenticated!'); }) 在validation之前,我怎样才能从FrontEnd调用'config'(socket.emit('config'))? 谢谢你的帮助。 对不起我的英文。

从完全形成的响应中触发大文件下载

问题 我有一个Node.js端点,当使用以下命令访问时,可以正确触发一个任意大的文件下载: response.setHeader('Content-disposition', 'attachment; filename=' + fileName); response.set('Content-Type', 'text/csv'); response.status(200); result.pipe(response); 其中result是变换stream , response是Express对象 。 当直接访问Chrome,Firefox,Internet Explorer等的terminal时,这种方式可以正常工作。当启用基于令牌的身份validation时,尝试达到终点时会出现问题。 从用户的angular度来看,当他们点击一个button时,文件被下载。 如何使该button在请求标题中find正确的身份validation令牌并导致文件被下载? 一些可能的方法集体讨论 当用户点击button时,它会触发一个由redux-api-middleware处理的动作,这会使GET请求到达终点(authentication令牌自动包含在请求中)。 该中间件将响应保存在由React组件拾取的variables中。 在这个React组件中,如果使用的浏览器(即Chrome和Opera)支持stream, response.body将会存在,所以你可以做如下的事情。 if (response.body) { const csvReader = response.body.getReader(); const textDecoder = new TextDecoder(); const processCsvRow = (csvRow) => { if (csvRow.done) { console.log('Finished downloading file.'); return Promise.resolve(); } // Write to new […]

我应该在Redis中存储JWT令牌吗?

我正在使用ExpressJS Mongodb(Mogoose)构build应用程序。 应用程序包含用户在访问之前必须进行authentication的路线。 目前我写了一个快递中间件来做同样的事情。 在这里用JWT令牌的帮助下,我正在做mongodb查询来检查用户是否被authentication。 但感觉这可能会把不必要的请求加载到我的数据库上。 我应该整合redis这个特定的任务? 它会改善API性能吗? 或者应该继续使用现有的mongodb方法? 如果我对此有更多的了解,将会有所帮助。

使用react-dev-tools黑客authentication

我正在学习基于令牌的身份validation,我有一个问题。 想象一下,在我的应用程序中的身份validation过程是按照以下方式完成的:每当用户提供正确的凭据,我给他一个令牌,并将REDX存储中的“已validation”密钥更改为true,这允许他在我的应用程序中查看私人内容。 我想要隐藏的组件是这样编码的: if(this.props.authenticated) { return <SuperSecretComponentOfIlluminatiMasonic666Chemtrails /> } else { return <PublicComponent /> } 我不知道这是否是一个安全的方法,因为任何人都可以安装react-dev-tools,在浏览器中翻动“已validation”的密钥,并在不提供凭据的情况下查看我想要隐藏的内容。 我的组件应该以不同的方式编码,或者一切正常,我只是在错误的方面? 我已经在很多教程中看到了这个方法,但这个问题不让我在晚上睡觉

Passport-jwt令牌过期

我正在使用passport-jwt生成我的令牌,但我注意到令牌永不过期,有没有什么办法根据为我设置的规则使特定令牌无效,如: 'use strict'; const passport = require('passport'); const passportJWT = require('passport-jwt'); const ExtractJwt = passportJWT.ExtractJwt; const Strategy = passportJWT.Strategy; const jwt = require('../jwt'); const cfg = jwt.authSecret(); const params = { secretOrKey: cfg.jwtSecret, jwtFromRequest: ExtractJwt.fromAuthHeader() }; module.exports = () => { const strategy = new Strategy(params, (payload, done) => { //TODO: Create a custom validate […]

JWT身份validation:使用UI令牌来validation石墨烯/ Django(GraphQL)查询?

我正在研究一个具有以下架构的项目: 用户界面(UI):通过节点服务器,用于GraphQL的Apollo客户端进行客户端和服务器端渲染, API:Django通过Graphene处理GraphQL查询。 我使用Auth0(基于JWT)进行前端身份validation。 我想使用我得到的令牌来validation我的用户在GraphQL查询API方面的上下文。 [EDIT2] 要将令牌传递给我的API,我使用: const idToken = cookie.load('idToken') || null; networkInterface.use([{ applyMiddleware(req, next) { if (!req.options.headers) { req.options.headers = {}; // Create the header object if needed. } req.options.headers.authorization = `Bearer ${idToken}`; next(); } }]); 然后我需要在Django中检索它:我使用django-jwt-auth和由@Craig Ambrose提出的代码。 我的授权头被接收和解码(我可以得到有效载荷),但validation签名时出现问题:我得到“错误解码签名”。 这是奇怪的,因为签名被validation,当我在jwt.io上testing它。 我怎样才能在Django身份validation?

sailsjs基于jwt令牌的authentication示例

我正在按照这个教程 。 但是,当我做sails lift运行我的应用程序,我越来越低于错误。 抛出新的TypeError('JwtStrategy需要一个函数从请求中检索jwt(请参阅选项jwtFromRequest)'); ^ TypeError:JwtStrategy需要一个函数来从请求中检索jwt(参见选项jwtFromRequest) 请帮我解决这个错误。

在Nodejs中使用Google API进行服务validation

我试图在节点上使用YouTube数据API V3,试图提供一个经过身份validation的代理,用于执行videosearch。 由于服务将在服务器上运行,因此我创build了一个服务帐户。 这会导致下载密钥文件和以下信息: 我对JWT有一个非常基本的理解,但OAuth2页面上的服务部分build议您应该使用其中一个库来完成它,而不是自己实现它。 但是,他们不会在其支持的库中列出节点库 。 多一点挖掘,我遇到了Google API Nodejs客户端: https : //github.com/google/google-api-nodejs-client声称受Google支持,并具有OAuth2支持开箱即用。 文档是相当小的,身份validation的例子包括打印一个URL到terminal,然后在浏览器中访问它来生成一个令牌。 我对源代码进行了深入的研究,看它是否支持JWT,并且似乎内置了JWTClient 。 /** * @constructor * JWT service account credentials. * * Retrieve access token using gapitoken. * * @param {string=} email service account email address. * @param {string=} keyFile path to private key file. * @param {array=} scopes list of […]

Gmail API是否支持JWT?

我想使用NodeJS访问Gmail API。 我正在使用服务器到服务器的方法(请参阅此 ),但是当我执行下面的代码时,我得到一个backEndError,来自Google API的代码500。 有任何想法吗? var authClient = new google.auth.JWT( 'email', 'key.pem', // Contents of private_key.pem if you want to load the pem file yourself // (do not use the path parameter above if using this param) 'key', // Scopes can be specified either as an array or as a single, space-delimited string ['https://www.googleapis.com/auth/gmail.readonly'] […]

如何在服务器身份validation后使用JSON Web令牌提供前端?

到目前为止,我只处理服务器呈现的应用程序,在用户通过用户名/密码login或使用OAuth提供程序(Facebook等)后,服务器只是在redirect到相关页面时设置会话cookie。 然而,现在我试图用一种更现代的方法构build一个应用程序,在前端和一个JSON API后端上都有React。 显然这个标准的select是使用JSON Web令牌进行身份validation,但是我很难解决如何为客户端提供JWT,因此可以将其存储在会话/本地存储或任何地方。 举例说明更好: 用户点击链接( /auth/facebook )通过Facebooklogin 用户被redirect并显示Facebooklogin表单和/或权限对话框(如有必要) Facebook将用户redirect到/auth/facebook/callback ,授权码被拖拽,服务器通过访问令牌和一些关于用户的信息进行交换 服务器使用info在数据库中查找或创build用户,然后创build一个包含用户数据相关子集(如ID)的JWT, ??? 在这一点上,我只是希望用户被redirect到React应用程序的主页(比方说/app ),因此前端可以接pipe。 但我不能想到一个(优雅)的方式来做到这一点,而不会丢失JWT,除了把它放在redirect的查询string中( /app?authtoken=… ) – 但是会显示在地址栏中,直到我用replaceState()或者其他方法手动删除它,并且对我来说似乎replaceState() 。 真的,我只是想知道这是如何做的,我几乎可以肯定我在这里失去了一些东西。 服务器是节点(Koa与护照),如果有帮助。 编辑:为了清楚,我问了什么是使用Passport OAuthredirectstream后 ,提供一个令牌给客户端(这样可以保存)的最佳方法。