【问题标题】:How to generate JWT token for the Jitsi payload如何为 Jitsi 有效负载生成 JWT 令牌
【发布时间】:2021-05-18 21:10:30
【问题描述】:

我无法在 C# 中生成以下有效负载。如果有人可以指导。

我使用下面的代码会产生错误的输出。

var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(key));
        var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);


        var permClaims = new List<Claim>();
        permClaims.Add(new Claim("aud", "jitsi"));
        permClaims.Add(new Claim("iss", "8B23A4BA85DE85D2922703F319496934"));
        permClaims.Add(new Claim("sub", "artaticsxauuio.com"));
        permClaims.Add(new Claim("room", "jd"));

        //Create Security Token object by giving required parameters    
        var token = new JwtSecurityToken(issuer, //Issure    
                        issuer,  //Audience    
                        permClaims,
                        expires: DateTime.Now.AddHours(1),
                        signingCredentials: credentials);
 
        var jwt_token = new JwtSecurityTokenHandler().WriteToken(token);

我得到错误的输出:

提前谢谢你。我正在为 JITSI 构建它。

【问题讨论】:

    标签: c# jwt-auth jitsi jitsi-meet


    【解决方案1】:

    这对我有用。

    using System.IdentityModel.Tokens.Jwt;
    ----------------------------------------------------------------------
    string key = @"secret-key";
    
    var securityKey = new Microsoft.IdentityModel.Tokens.SymmetricSecurityKey(Encoding.UTF8.GetBytes(key));
    
    var credentials = new Microsoft.IdentityModel.Tokens.SigningCredentials(securityKey, "HS256");
    
    var header = new JwtHeader(credentials);
    
    JwtPayload payload = new JwtPayload();
    
    payload.AddClaim(new System.Security.Claims.Claim("context", "{'user': { 'name': 'username', 'email': 'email' }}", JsonClaimValueTypes.Json));
    payload.AddClaim(new System.Security.Claims.Claim("iss", @"app-key"));
    payload.AddClaim(new System.Security.Claims.Claim("aud", "meet.jitsi.com"));
    payload.AddClaim(new System.Security.Claims.Claim("sub", "meet.jitsi.com"));
    payload.AddClaim(new System.Security.Claims.Claim("room", "TestRoom"));
                    
    var secToken = new JwtSecurityToken(header, payload);
    var handler = new JwtSecurityTokenHandler();
    
    var tokenString = handler.WriteToken(secToken);
    

    【讨论】:

      猜你喜欢
      • 2019-10-29
      • 1970-01-01
      • 2021-12-24
      • 2018-09-15
      • 2017-11-24
      • 2020-01-10
      • 2018-12-19
      • 2017-01-06
      • 2022-01-04
      相关资源
      最近更新 更多