标签: json-web-token

jsonwebtoken.sign()失败并设置了expiresIn选项

我需要通过使用JWT签署用户ID来获取令牌:

var token = jwt.sign(accounts[request.headers.login].id, privateKey, {expiresIn: 60});
Run Code Online (Sandbox Code Playgroud)

哪里idprivateKey是字符串.

错误是Error: Uncaught error: "expiresIn" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60.如果我删除选项对象,它可以工作,但没有我需要设置的选项.

问题似乎很简单,但我不知道如何解决它,我做错了什么?

javascript json-web-token

3
推荐指数
2
解决办法
8168
查看次数

使用JWT检索Azure AD组信息

我有需要Azure AD承载身份验证的API.

public void ConfigureAuth(IAppBuilder app)
{
   app.UseWindowsAzureActiveDirectoryBearerAuthentication(
      new WindowsAzureActiveDirectoryBearerAuthenticationOptions
      {
         // ...
      });
}
Run Code Online (Sandbox Code Playgroud)

然后可以查询Azure AD - 可能使用图谱API - 来确定主叫用户的组信息吗?这里的最终目标是将基于角色的安全性应用于API方法/控制器,如下所示(或类似).

[PrincipalPermission(SecurityAction.Demand, Role = "Admin")]
Run Code Online (Sandbox Code Playgroud)

此外,身份信息如何以及在何处应用于执行线程?

c# azure-acs azure-active-directory bearer-token json-web-token

2
推荐指数
1
解决办法
3633
查看次数

WSO2carbon的RSA公钥

我从WSOAM生成JWT令牌,然后作为标头传递给API.我在nodejs中创建了我的API,我使用jsonwebtoken插件来验证和解码JWT.

我无法找到Wso2carbon的RSA公钥来验证/解码令牌.

请帮助我如何生成RSA公钥或在哪里可以找到此密钥?

wso2 wso2carbon wso2-api-manager json-web-token

2
推荐指数
1
解决办法
797
查看次数

Express 中间件 jsonwebtoken 身份验证

我的服务器有一个注册 api,在注册后提供令牌,以及一个验证用户令牌的中间件。我需要注册一个帐户才能获取令牌才能对我的服务器执行其他操作。但是,中间件阻止了我的网络请求,因为我还没有令牌。

那么在这种情况下我该如何创建我的帐户和令牌呢?通过一些技巧来绕过中间件?

中间件:

  // Middleware to verify token, it will be called everytime a request is sent to API
  api.use((req, res, next)=> {
    var token = req.headers.token
    if (token) {
      jwt.verify(token, secret, (err, decoded)=> {
        if (err) {
          res.status(403).send({ success: false, message: "Failed to authenticate user." })
        } else {
          req.decoded = decoded
          next()
        }
      })
    } else {
      res.status(403).send({ success: false, message: "No Token Provided." })
    }
  })
Run Code Online (Sandbox Code Playgroud)

登入:

  // Sign In with email API
  api.post('/signInWithEmail', (req, res)=> …
Run Code Online (Sandbox Code Playgroud)

node.js express json-web-token

2
推荐指数
1
解决办法
8143
查看次数

Jsonwebtoken验证始终只返回{iat:xxx}

根据文档,https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback,jwt.verify将返回解码有效负载,我运行简单的脚本:

var token = jwt.sign({email: req.body.email,}, 's3cr3t');
var decoded = jwt.verify(token, 's3cr3t');
console.log(decoded)
Run Code Online (Sandbox Code Playgroud)

但它只输出如下: { iat: 1470725598 }

我希望输出应该是这样的 {email: myemail@domain.com,}

有什么我想念的吗?

node.js express-jwt json-web-token

2
推荐指数
1
解决办法
2500
查看次数

验证节点PEM_read_bio_PUBKEY上的RS256 jwt是否失败

我正在尝试验证jwt使用该RS256算法的情况.使用hs256算法时一切正常

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;
    }
Run Code Online (Sandbox Code Playgroud)

我一直收到错误: PEM_read_bio_PUBKEY failed

虽然auth0文件要这样做,但它假设你使用的是快递,我不是.我在websocket上这样做,所以没有中间件.

恼人的一点HS256对我来说没问题,但auth0自定义登录表单似乎需要RS256.

node.js jwt json-web-token auth0

2
推荐指数
1
解决办法
3523
查看次数

在 Flask-Oauthlib 中使用 Json Web 令牌

对于客户端项目,我正在开发一个使用 Flask 作为后端的 Web 应用程序。

所以我决定使用 Flask-oauthlib 来尝试使提供刷新令牌和撤销访问令牌变得简单。然而,有些事情我仍然很难理解。

编写 oauth 服务器时,如何使用默认访问/刷新令牌生成和提供 JSON Web 令牌?

我还想知道的另一件事是我将如何从 http 请求验证 JSON Web 令牌?

任何建议表示赞赏。

flask oauth-2.0 python-3.x json-web-token flask-oauthlib

2
推荐指数
1
解决办法
1259
查看次数

节点:使用页面重定向将JSON Web令牌发送到客户端

我正在使用Node Express构建后端服务器。另外,身份验证是我的应用程序使用Passport-SAML进行的操作。我正在使用JWT维护用户会话。所以流程是

  1. 用户调用登录端点
  2. 它们被重定向到SAML身份提供程序。
  3. 提供者验证用户,并通过回调URL将授权发送回服务器。
  4. 我正在使用POST回调URL进行身份验证,然后为用户创建令牌以执行授权和会话管理。

回调POST端点也具有页面重定向。到目前为止,由于明显的原因,我知道的是res.status和res.redirect不能在同一端点中。我一直在尝试找到正确的方法,非常感谢您的帮助。

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');

    }
);
Run Code Online (Sandbox Code Playgroud)

node.js express jwt passport.js json-web-token

2
推荐指数
1
解决办法
3416
查看次数

jsonwebtoken Typescript 编译问题?

我正在尝试编译一个打字稿文件,它不断从编译器中抛出这个错误: error TS2339: Property 'payload' does not exist on type 'string | object'. Property 'payload' does not exist on type 'string'.

有问题的代码:

decode(token: string): any {
  const decodedJWT = jwt.decode(token, { complete: true });

  const issuer = decodedJWT.payload.iss;
                           ^^^^^^^^^
  return {};
}
Run Code Online (Sandbox Code Playgroud)

我正在使用@types/jsonwebtoken库来定义类型。任何帮助将非常感激。

typescript json-web-token

2
推荐指数
1
解决办法
1640
查看次数

在标头中传递 JWT

我正在使用 NodeJs 学习 JWT。我一直坚持在标头中传递 JWT,实际上我不知道该怎么做。

索引.js 文件

var express = require('express'),
 app = express(),
 routes = require('./routes'),
 bodyParser = require('body-parser'),
 path = require('path'),
 ejs = require('ejs'),
 jwt = require('jsonwebtoken');

app.use(bodyParser.urlencoded({ extended: false })); 
app.use(bodyParser.json());

app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');

app.post('/home',routes.loginUser);

app.get('/', function(req, res) {
  res.render('index');
});

app.get('/home',function(req, res) {
  jwt.verify(req.token, 'qwertyu6456asdfghj', function(err, data) {
    if (err) {
      res.sendStatus(403);
    } 
  });
});

 app.listen(3000,function(){
  console.log("Server running at Port 3000");
});
Run Code Online (Sandbox Code Playgroud)

路线/index.js 文件

var  jwt = require('jsonwebtoken');

exports.home = function(req, res){ …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express express-jwt json-web-token

2
推荐指数
1
解决办法
2万
查看次数

使用jose4j生成的令牌在node.js中使用jsonwebtoken验证JWT失败

我正在尝试使用node.js中的jsonwebtoken验证jose4j生成的json Web令牌,我看到以下错误:

[错误:PEM_read_bio_PUBKEY失败]

jose4j代码基本上直接取自示例:

RsaJsonWebKey key = RsaJwkGenerator.generateJwk(2048);
key.setKeyId("global.authenticated");

byte[] raw = key.getKey().getEncoded();
Base64.Encoder encoder = Base64.getEncoder();
System.out.printf("Public Key [%s]\n", encoder.encodeToString(raw));

JwtClaims claims = new JwtClaims();
claims.setIssuer("global.gen");
claims.setAudience("global.cons");
claims.setExpirationTimeMinutesInTheFuture(12 * 60);
claims.setGeneratedJwtId();
claims.setIssuedAtToNow();
claims.setNotBeforeMinutesInThePast(2);
claims.setSubject("nim");
claims.setClaim("role", "tester");

JsonWebSignature jws = new JsonWebSignature();
jws.setPayload(claims.toJson());
jws.setKey(key.getPrivateKey());
jws.setKeyIdHeaderValue(key.getKeyId());
jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.RSA_USING_SHA256);
String token = jws.getCompactSerialization();
System.out.printf("Generated Token [%s]\n", token);


JwtConsumer jwtConsumer = new JwtConsumerBuilder()
    .setRequireExpirationTime() // the JWT must have an expiration time
    .setAllowedClockSkewInSeconds(30) // allow some leeway in validating time based claims to account …
Run Code Online (Sandbox Code Playgroud)

javascript java node.js json-web-token jose4j

1
推荐指数
1
解决办法
4593
查看次数

JWT的安全性如何

我知道这个问题并不是什么新鲜事,可能已经在互联网上进行了讨论.

我是新手,但经过一些研究,我同意这是安全的,因为匿名可以嗅到令牌,但无法在其上附加任何内容.我打算将JWT存储在HTML5Storage中,并对有效负载进行解码以获取一些敏感信息:DisplayName,email_address和role_info等.

这是我的问题,匿名嗅闻我的JWT令牌并代表我行事?如果可能,我该如何避免?

token web-storage jwt firebase-security json-web-token

1
推荐指数
1
解决办法
1059
查看次数

如何在节点js中分配全局变量和局部变量

如果我声明一个变量并从一个方法赋值并在该方法外打印,但是它显示未定义。我的代码是

var value;
var getValue = function getValue(){
    value = 5;
};
console.log(value); 
Run Code Online (Sandbox Code Playgroud)

输出,

undefined
Run Code Online (Sandbox Code Playgroud)

我也在尝试全局变量

var getValue = function getValue(){
    global.value = 5;
};
console.log(value);
Run Code Online (Sandbox Code Playgroud)

但显示出一些错误,

console.log(value);
            ^

ReferenceError: value is not defined
    at Object.<anonymous> (~/MyApp/test.js:8:13)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:146:18)
    at node.js:404:3
Run Code Online (Sandbox Code Playgroud)

local httprequest node.js json-web-token

-3
推荐指数
1
解决办法
9007
查看次数