private async Task <object> GenerateJwtToken(string email, IdentityUser user) { var Token = new JsonWebTokenBuilder() .AddSecurityKey(JsonWebTokenSecurityKey.Create(_configuration["JWebtokenKey"].ToString())) .AddSubject(user.UserName.ToString()) .AddIssuer(_configuration["JWebtokenIssuer"].ToString()) .AddAudience(_configuration["JWebtokenIssuer"].ToString()) .AddClaim(user.UserName, user.Id) .AddExpiry(10) .Build(); //var claims = new List<Claim> //{ // new Claim(JwtRegisteredClaimNames.Sub, email), // new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), // new Claim(ClaimTypes.NameIdentifier, user.Id) //}; //var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWebtokenKey"])); //var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); //var expires = DateTime.Now.AddDays(Convert.ToDouble(_configuration["JWebTokenExpireDays"])); //var token = new JwtSecurityToken( // _configuration["JWebtokenIssuer"], // _configuration["JWebtokenIssuer"], // claims, // expires: expires, // signingCredentials: creds //); return(new JwtSecurityTokenHandler().WriteToken(Token.PublicToken)); }
private void GenerateToken() { var section = configuration.GetSection("ZoomMeeting"); var API_KEY = section.GetValue <string>("api_key"); var API_SECRET = section.GetValue <string>("api_secret"); JsonWebTokenBuilder builder = new JsonWebTokenBuilder(); var header = new Header();//instanciado com os valores padrão. var payload = new PayloadResponse() { api_key = API_KEY, expireDate = Convert.ToInt32(DateTime.UtcNow.AddMinutes(30).Subtract(new DateTime(1970, 1, 1)).TotalSeconds), }; builder.AddHeader("alg", header.alg); builder.AddHeader("typ", header.typ); builder.AddClaim("exp", payload.expireDate); builder.AddClaim("iss", payload.api_key); this.Token = builder.GetJWT(API_SECRET); }