问题描述
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构建它。
解决方法
这对我有用。
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);