Tag: jwt

使用Socket.io,Angular,JWTvalidation数据直到用户validation刷新后才可用

我正在使用Angular和Socket.io,socket-jwt用于身份validation套接字,以及angular-socket-io在前端。 当页面加载时,客户端尝试连接到socket.io服务器。 它被拒绝是因为它们没有为客户build立令牌。 当套接字连接build立时,我正在解码服务器上的令牌,然后我想向客户端发送数据,包括socket.id,我将更新模型和视图。 用户进行身份validation之后,直到页面刷新为止,socket.io数据才可用,然后发送到客户端。 如何在用户login并使数据可用后build立socket.io连接? 我曾尝试调用我的套接字工厂,用户login后使用login控制器内的socket.connect()和io.connect()。 sockets工厂 app.factory('socket', function ($window, socketFactory) { var token = $window.localStorage.yourTokenKey; var myIoSocket = 'http://localhost:8080'; var socket = io.connect(myIoSocket, {'query' : 'token=' + token}); return socket; }); login控制器loginfunction $scope.login = function() { AuthService.login($scope.user) .then(function(msg) { socket.connect(); $state.go('home'); }, function() { console.log('Login Failed'); }); }; 服务器代码 var socketIo = require('socket.io'); […]

如何在节点中validation具有x.509证书的JWT令牌?

我正在尝试使节点脚本validationJWT令牌。 我有公钥(这是一个x.509证书)和智威汤逊。 我尝试使用https://github.com/auth0/node-jsonwebtoken,但不幸的是,他们似乎不支持x.509。 如果你知道用x.509证书validationJWT令牌的包,我将不胜感激。 谢谢!

在程序中直接提供密码时,jsonwebtokenvalidation失败

我正在尝试使用jsonwebtoken npmvalidation和解码一个json Web令牌,使用下面的代码片段: var jwt = require('jsonwebtoken'); var fs = require('fs'); var encoded = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI.yn2Vb3hE7BKrXntCa-pTVAS7MwsaHD1csPZMiibOhwk'; fs.readFile('/etc/jwt/shared.key', function(err, result){ if (err) { console.error("error:", err); return; } var verified = jwt.verify(encoded, 'ssshhhh'); //var verified = jwt.verify(encoded, result); console.log("verified:", verified); }); 当我尝试使用硬编码值jwt.verify()时,程序失败 if (err) throw err; ^ JsonWebTokenError: invalid signature at Object.JWT.verify (/home/rvnath/projects/comviva/mbs/ecp7/dev/authserver/node_modules/jsonwebtoken/index.js:219:17) at /home/rvnath/projects/comviva/mbs/ecp7/dev/authserver/testverify.js:11:22 at fs.js:334:14 at […]

如何隐藏jwt访问令牌?

我的应用程序应该隐藏来自使用应用程序的用户的访问令牌,我该如何实现? 我正在使用express.js for api … 现在我可以login来生成这样的令牌: var userInstance; app.post("/login/user" ,function(req,res) { var cred = _.pick(req.body, "email", "password"); db.user.loginAuth(cred.email, cred.password) .then(function (user) { userInstance = user; return db.token.create({ token: user.generateToken("auth") }); }) .then(function(token) { res.send({ token: token.token, user: userInstance }); }) .catch(function() { res.status(401).send(); }); }); 我需要创build例如PHP脚本将使用API​​和令牌不会受到影响

为什么在MEAN应用程序的每个请求中授权头返回undefined

我使用JWT实现了身份validation。 在每个请求中,我想访问授权令牌,但是当我尝试访问它时总是返回undefined。 我的情况是,我存储了存储在本地存储中的身份validation令牌,当授权令牌可用时,它考虑已authentication的用户,并允许访问URL以及何时令牌不可用。 所以我使用angular拦截器在每个请求中添加授权标头。 它确实添加了每个请求,但我无法从服务器端获得。 在每个请求中,我传递授权标题,但它总是返回undefined作为输出。 请查看我的代码并提供指导。 app.route.js [AngularJS] (function () { function authInterceptor($window) { return{ request: function (config) { if ($window.localStorage['hz-token']) { config.headers.Authorization = 'Bearer ' + $window.localStorage['hz-token']; } return config; } } } /* * Default Route of application * @param {$stateProvider} Object * @param {$routeProvider} Object * @return */ function config($stateProvider, $urlRouterProvider, […]

如何在redux操作中访问NodeJs服务器上的httpOnly cookie?

所以,我开始构build一个完全通用/同构的React / Redux项目。 login状态通过JWT进行维护。 客户端通过localStorage访问JWT,但是我也想设置一个包含JWT的httpOnly cookie,以便服务器可以看到它并适当地呈现页面。 使用Redux操作设置和访问httpOnly cookie的最佳方法是什么? 使用express比较容易,但是我想将这些东西包装在redux动作中,并在服务器/客户端之间共享一个共享存储器,所以我有点不知所措。 我看到了redux-effects-cookie ,有没有人用过这个?

我怎样才能结合智威汤逊和护照Facebook?

我使用passportJS创build了一个快速应用程序,我试图使用JSON Web Tokens来validation我的api: 该应用程序同时具有本地和facebook用户,在mongoose模式中一起定义: var mongoose = require('mongoose'); var bcrypt = require('bcrypt-nodejs'); var UserSchema = mongoose.Schema({ name: { type: String }, password: { type: String }, local: { type: String, enum: [ '0', '1' ] }, fbId : String, fbToken : String, fbEmail : String, fbName : String }); UserSchema.pre('save', function(callback) { var user = […]

使用JavaScript中的PFX文件的RSA私钥创buildJWT(NodeJS)

我试图从PFX文件创build一个RSA私钥,我可以使用它来创build一个JWT。 我不太了解事物的安全性,所以很难find合适的库来使用。 我有一个提供的PFX,我需要使用它来encryptionJSON有效载荷(在一个Node应用程序中),然后将其发送到第三方(Java)后端服务器进行解密。 任何示例代码来做到这一点将不胜感激。

Passport身份validationfunction在节点API中不起作用

我正在使用jwt-simple节点模块在login时创build令牌。 下面是我的代码: apiRoutes.put('/login', function(req, res, next){ User.findOne({email:req.body.email}, function(err, user){ bcrypt.compare(req.body.password, user.password, function(err, result){ if(result){ var token=jwt.encode(user,config.secret); return res.json({token:token}); }else{ return res.json("Incorrect Email and Password") } }) }) }); 令牌正在创build成功。 现在我试图在/dashboard路线中validation用户。 apiRoutes.get('/dashboard', passport.authenticate('jwt', { session: false}), function(req, res) { var token=getToken(req.headers); if(token){ var decode=jwt.decode(token, config.secret); User.findOne({name:decode.name}, function(err, user){ if(err){res.json(err)} if(!user){ return res.status(403).send({success:false, msg:'Authentication Failed'}) }else{ res.json({success:true, […]

智威汤逊validation客户端?

我有一个angular度前端的nodejs api。 API成功使用JWT和护照来保护它的端点。 我现在意识到,在令牌过期之后,我的前端仍然允许用户请求我的api端点,而不会提示他们重新input他们的详细信息以获取新的令牌。 这是我的后端如何生成令牌: function generateToken(user) { return jwt.sign(user, secret, { expiresIn: 10080 // in seconds }); } 所以要实现这个逻辑,我想我需要validationJWT令牌客户端。 Q1,这是一个明智的做法。 Q2,我正在使用的JWT库似乎需要一个公钥才能使用它的verify()函数。 我似乎没有一个公钥,只有一个秘密,我只是编了一个秘密,所以它不是由一对产生的。 我的公钥来自哪里,或者是否有另一种validation我的令牌的方式? 这一切似乎应该是显而易见的,我已经错过了一些东西,所以如果这是一个愚蠢的问题,我很抱歉,但我似乎无法find答案?