Tag: jwt

本地testingAzure Mobile Auth – 无效的jwt签名

我正在玩一个Azure移动应用程序后端(nodeJS),正如这里所讨论的。 我一直在使用默认的网页设置configuration开发我的移动应用程序,但是现在我想定制云端后端function,所以我已经使用Azure-Mobile-Apps SDK创build了一个本地后端。 我使用我的移动应用程序(使用Azure客户端SDK的授权方面)login,然后捕获AuthToken。 然后我构造了一个邮递员HTTP POST请求,这些标题: ZUMO-API-VERSION = 2.0.0 x-zumo-auth = eyJ0eX000000000000000000000000000000.eyJ000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000000000-000000000_00000_00000 注意:我的tokenm实际上并不包含所有这些零,它看起来像一个有效的标记。 但是,POST请求的响应是: {“name”:“JsonWebTokenError”,“message”:“无效签名”} 我以为这可能是因为身份validation令牌是由不同的服务(默认后端,而不是我的项目在本地主机上运行)生成的。 于是我用localhost初始化了一个客户端,并试图用它进行身份validation,但是我得到了: JS:错误login! 错误:未使用所选身份validation提供程序login铬:[INFO:CONSOLE(12)]“不允许加载本地资源:file:///android_asset/webkit/android-weberror.png”,source:data: text / html,chromewebdata(12) 更新: 我从https://myApp.scm.azurewebsites.net/Env.cshtmlfind了我的WEBSITE_AUTH_SIGNING_KEY,并将其添加到我的azureMobile.js file ,该azureMobile.js file位于与我的app.js文件相同的目录中。 它看起来像这样: console.log("Test"); module.exports = { cors: { origins: ['localhost'] }, data: { provider: 'mssql', server: '127.0.0.1', database: 'mytestdatabase', user: 'localDemo', password: 'myPassword' }, logging: { level: 'verbose' }, […]

JsonWebToken | 获取请求validation

我目前正在尝试构build一个基于令牌的简单login系统。 我有一个简单的login表单,将凭据发送到服务器。 创build一个令牌也适用于我。 如果用户login并手动打开用户仪表板链接,则服务器将收到请求。 我怎样才能validation令牌呢? 我无法find一个方法来访问它的get事件。 令牌创build: var token = jwt.sign({ Username: 'test' }, app.get('tokenPass')); // This token is either send as response or via emitting. 在客户端,我将其存储为 $window.sessionStorage = token; 我的问题: app.get('/dashboard', function(req, res) { // req is not including the token // I cant deliver the dashboard without // validating that the requesting user […]

如何将jwt令牌到期时间设置为nodejs中的最大值?

我不希望我的令牌过期,并永久有效。 var token = jwt.sign({email_id:'123@gmail.com'}, "Stack", { expiresIn: '24h' // expires in 24 hours }); 在上面的代码,我已经给了24小时..我不希望我的代币过期。 这方面应该做些什么?

将令牌保存在使用节点的本地存储中

我使用JWT ("jsonwebtoken": "^5.4.0")和express 4和jade。 我能够创build正确的令牌,但是如何在每次调用中传递此令牌? 在哪里我必须存储这个令牌? 在标题或在localStorage? 现在我用邮递员使用CURL,并在头中设置令牌 x-access-token 我是否创build了一个从数据库中检索令牌的中间件,并在每个调用中使用它? 谢谢

一个语言或库中创build的jwt能否被解码和validation?

所以我有一个使用golang和jwt-go库来发布jwt的API服务器,我想要一个使用node.js和jsonwebtoken库运行的socket.io服务器,需要解码和validation令牌,所以我的问题是我从一个库发出一个令牌,从另一个库解码和validation它?

TypeError:无法读取Nodejs中未定义的属性'split'

我得到以下错误,使用jwt-simple lib: TypeError: Cannot read property 'split' of undefined at module.exports (C:\my_application\services\mylist.js:5:40) at Layer.handle [as handle_request] (C:\my_application\node_modules\express\lib\router\layer.js:95:5) at next (C:\my_application\node_modules\express\lib\router\route.js:131:13) at Route.dispatch (C:\my_application\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (C:\my_application\node_modules\express\lib\router\layer.js:95:5) at C:\my_application\node_modules\express\lib\router\index.js:277:22 at Function.process_params (C:\my_application\node_modules\express\lib\router\index.js:330:12) at next (C:\my_application\node_modules\express\lib\router\index.js:271:10) at C:\my_application\api.js:39:3 at Layer.handle [as handle_request] (C:\my_application\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\my_application\node_modules\express\lib\router\index.js:312:13) at C:\my_application\node_modules\express\lib\router\index.js:280:7 at Function.process_params (C:\my_application\node_modules\express\lib\router\index.js:330:12) at next (C:\my_application\node_modules\express\lib\router\index.js:271:10) at […]

护照JWT – 未经授权

我遇到了一个问题,那就是它总是返回给我。 当我设置标题授权给收到的令牌。 它返回。 擅自 。 router.get('/dashboard', passport.authenticate('jwt', {session: false}), (req, res) => { res.json('It worked: User ID is: ' + req.user._id); }); 。 var jwtOptions = { jwtFromRequest: ExtractJwt.fromAuthHeader(), secretOrKey: config.jwt.secretOrKey //issuer: config.jwt.issuer, //audience: config.jwt.audience, }; passport.use(new JWTStrategy(jwtOptions, (jwt_payload, done) => { User.findOne({id: jwt_payload.id}, (err, user) => { if (err) { return done(err, false); } […]

如何使用Express-JWT处理错误

我正在尝试使用express-jwt库,我不太明白它是如何处理错误的。 该文件说: error handling 默认行为是在令牌无效时抛出错误,所以您可以>添加自定义逻辑来pipe理未经授权的访问,如下所示: app.use(function (err, req, res, next) { if (err.name === 'UnauthorizedError') { res.status(401).send('invalid token…'); } }); 但我很困惑这是如何工作的。 如果我有一个简单的req res情况下,如果令牌是有效的,我想要调用next ,或者如果不是,那么调用next一个错误,在哪里我把该app.use函数? 例如,这是我的代码: router.post('/', expressJwt({ secret: jwtSecret, credentialsRequired: false }), (req, res, next) => { databaseController.findUser(req.user.email, (err, user) => { if (err) { return next(err) } res.json(user) }) }) 这里的err将来自我的数据库调用,而不是来自express-jwtvalidation。 任何帮助表示赞赏。

如何使用nodejs和express来设置授权标题

我正在按照本教程设置nodejs,express,mongoose和swig模板的站点: 使用JSON Web令牌validationNode.js API 在本教程中,作者使用Postman在标题中设置标记。 我已经search了几天,以了解如何在我的网站的标题中设置jwt令牌,但它不适合我。

validation节点PEM_read_bio_PUBKEY上的RS256 jwt失败

我试图我试图validation使用RS256algorithm的jwt 。 当使用hs256algorithm一切工作正常 let opts = { audience: 'y', issuer: `https://x.auth0.com/`, algorithms: ["RS256"] } jwt.verify(payload.token, 'secret', opts, (err, decoded) => { if (err) { console.log("invalid token in iamonline service " + err.message); return; } 我不断收到错误: PEM_read_bio_PUBKEY failed 虽然auth0有这样做的文档 ,它假定你使用快递,我不是。 我正在通过WebSocket这样做,所以没有中间件。 令人讨厌的是, HS256对我来说很好,但auth0自定义login表单似乎需要RS256 。