Tag: json web token

使用jsonwebtoken创buildReact-App DNS模块错误

我有一个错误,我无法解码客户端应用程序的授权令牌。 我发现我的问题的修复程序,但他们只能被固定在自定义webpack.configs。 我正在使用create-react-app构build,现在已经停留了一段时间了。 这里是我的错误是一个例子。 ./~/isemail/lib/isemail.js Module not found: Can't resolve 'dns' 当我尝试在客户端使用npm模块“jsonwebtoken”解码我的授权令牌时,会发生此错误。 如果任何人有一个解决这个问题或可以解释一种方法来初始化dns节点为空,我将不胜感激

JsonWebToken在节点4和节点6/8中以不同的方式签名

我目前在节点4中使用node-jsonwebtoken生成JWT。当我尝试升级到节点8时,我无法签署节点4中生成的JWT(使用相同的秘密&有效载荷,签名是不同的)。 这是一个问题,因为我不想让旧的令牌失效。 问题来自node-jwa库 ,一个依赖节点-jws,它是node-jsonwebtoken的依赖。 我在GitHub上引用了这个问题,正如你所看到的,模块的作者能够重现这个问题。 这里是代码,如果你想testing: const crypto = require('crypto'); const jwa = require('jwa'); const secret = crypto.createHash('sha256').update('secret').digest('binary'); const payload = { uid: 'test', iat: 1455988418, iss: 'test' }; const algo = jwa('HS256'); const sig = algo.sign(payload, secret); console.log(sig); // Node v4 => "_zPq9vDP4_Ve0mTVTF_9H3NRkluQhoR4yAg8X4yqR8Q" // Node v6 => "hk9bpxID-HOmvNpJUy7x80KqT5JP8tb_BoAJLYVIYsE" 据我所知,问题是在v5 / v6中,摘要的默认编码被改为utf8。 在v4和更早版本中,它是二进制的。 Cf => […]

Node / Express API,使用JWT令牌的电子邮件validation,意外的行为

一种奇怪的问题。 我正在构build一个NodeJS /快速API使用JSON Web令牌用户的电子邮件validation。 下面是用户注册和电子邮件确认路线的代码。 使用以下步骤在Postman中testing这些路由时,一切正常(状态200,用户对象返回):1.发送POST请求以创build用户。 2.使用mongodb shell从新用户获取令牌。 3.在获取请求中使用复制/粘贴令牌来确认路线。 然而,当实际点击通过电子邮件发送的链接时,数据库中的所有更新都是按照它的意思进行的,但是我得到了一个401错误。 即使从电子邮件中的链接复制并粘贴令牌并将其发送给邮递员也具有相同的结果。 路线: app.post('/api/users', (req, res) => { let body = _.pick(req.body, [ 'email', 'password', 'firstName', 'lastName', 'adminRequested' ]); let user = new User(body); user.save().then(() => { return user.generateAuthToken('confirmation', '1h'); }).then((token) => { let currentUrl = req.protocol + '://' + req.get('host') + req.originalUrl; let confirmationUrl = […]

即使在授权中input令牌,JWT也会返回无效的签名错误

我已经看了这个堆栈溢出条目Node.js – Express.js JWT总是返回一个浏览器响应无效的令牌错误,但我找不到解决scheme。 我试图编写一个小节点应用程序,作为使用JWT访问令牌的概念validation。 我去了http://jwt.io/并试图跟随video教程。 我得到了一个令牌生成,但实际上使用令牌时,我得到一个“未经授权的错误:无效签名”的错误。 以下是我的源代码 const myUsername = 'ironflag'; const express = require('express'); const expressJWT = require('express-jwt'); const bodyParser = require('body-parser'); const jwt = require('jsonwebtoken'); const PORT = 2000; // App const app = express(); //fake data let killerBeez = { members: 9, location: 'staten island', stateOfBeing: 'wu-tang forever', memberList: [ { […]

Nodejs减lessjsonwebtoken的长度

我是nodejs的初学者。 我使用jsonwebtokens使用nodejs进行login系统。 有人可以告诉我什么参数生成令牌的长度取决于。 它只取决于使用的秘密string或任何其他参数。 另外我们如何减less生成的令牌的大小。 现在为我所做的生成大约1100个字符的令牌。

节点:发送JSON Web令牌到页面redirect的客户端

我正在使用Node Express来构build我的后端服务器。 此外,身份validation是我的应用程序与Passport-SAML发生。 我正在使用JWT来维护用户会话。 所以stream量是, 用户在login端点中调用 他们被redirect到SAML身份提供者。 提供程序validation用户,并在callbackURL中将授权发送回服务器。 我正在使用POSTcallbackURL进行身份validation,然后为用户创build令牌以执行授权和会话pipe理。 callbackPOST端点也有一个页面redirect。 从目前为止我学到的是res.status和res.redirect不能在相同的端点出于显而易见的原因。 我一直在试图find正确的方法,任何帮助,不胜感激。 router.route('/login') .get( passport.authenticate(config.passport.strategy, { successRedirect: '/', failureRedirect: '/login' }) ); router.route(config.passport.saml.path) .post( passport.authenticate(config.passport.strategy, { failureRedirect: '/', failureFlash: true }), function (req, res) { res.redirect('/'); var token = Verify.getToken(req.user.saml); return res.status(200).json({ status: 'Login successful!', success: true, token: token }); console.log(token,'yes'); } );

Node.jsauthentication没有护照:是json的networking令牌可靠吗?

我正在使用MEAN堆栈,并希望确保某些路由具有经过身份validation的用户。 我一直在阅读JSON的networking令牌。 这似乎是合理的。 在我投入更多时间之前,我想询问是否有其他人使用它,以及是否有迄今为止注意到的任何主要缺陷。 除护照外,还有其他stream行的替代品吗?

nodejs – JSONWebToken到期问题

我正在尝试使用Json Web Token来validation我的nodejs api(在本文的帮助下),但问题在于该令牌永不过期。 var express = require('express'); var app = express(); var mongoose = require('mongoose'); var bodyParser = require('body-parser'); var jwt = require('jsonwebtoken'); mongoose.connect('mongodb://localhost/gd'); var schema = mongoose.Schema; app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); var router = express.Router(); app.use('/api', router); var userSchema = new schema({ username: String, password: String },{ collection: 'users' }); var User […]

使用nodejs和jsonwebtokenlogin示例:无法读取令牌validation结果

我的MIDDLEWARE检查用户提供的令牌是否正确。 通过使用jsonwebtoken实现的安全控制是在中间件内部,并且工作正常。 在我决定把所有这些安全检查移到另一个文件:TokenManger.js之后 但是我不知道如何设置这两个文件之间的代码。 我尝试了很多方法,但没有人工作。 所以为了更好的理解,我粘贴下面的示例代码,这是不工作的。 这是关于中间件: … router.use(function(req,res,next){ var token = req.body.token || req.query.token || req.headers['x-access-token']; //decode token if(token){ TokenManager.verifyToken(token,true,function(err,key){ if(err) return res.json({ success : false, message : "Failed to authenticate token"}); else next(); }); }else{ // no token, return error return res.status(403).send({ success : false, message: 'No token provided!' }); } }); … […]

如何处理MVC nodejs服务上的angular色(jsonwebtoken,mongoose)

我正在开发一个使用MVC模式的服务,支持NodeJS,jsonwebtoken和MongoDB(mongoose)。 在我的应用程序中,我模拟了两个主要angular色:普通用户(可以通过Facebook,亚马逊或本地注册注册),驱动程序(仅通过网站注册)。 我还要模拟用户和驱动程序之间的交易,只有用户和驱动程序明显可以通过CRUD范例进行修改。 在这里,我发布了用户和驱动程序的模型: var userSchema = mongoose.Schema({ name: String, surname: String, email: String, password: { type: String, required: true } }); var driverSchema = mongoose.Schema({ name: { type: String, required: true }, surname: { type: String, required: true }, email: { type:String, required: true, unique:true }, password: { type: String, required: true, minlength: minimum […]