Пример #1
0
        public IActionResult Create([FromForm] JWTInput request)
        {
            var jwtResponse = TokenService.Authenticate(request);

            TempData["encoded"] = jwtResponse;
            return(RedirectToAction("Index"));
        }
        public static string Authenticate(JWTInput input)
        {
            List <Claim> claims = new List <Claim>();

            if (input.Claims.Count() > 0)
            {
                input.Claims?.ForEach(x => claims.Add(new Claim(x.Type, x.Value)));
            }
            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Encoding.ASCII.GetBytes(input.Key);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                IssuedAt = DateTime.Now,
                Issuer   = input.Iss,
                Audience = input.Aud,

                Subject            = new ClaimsIdentity(claims.ToArray()),
                Expires            = DateTime.UtcNow.AddDays(7),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), Create(input.Algorithm))
            };
            var token  = tokenHandler.CreateToken(tokenDescriptor);
            var result = tokenHandler.WriteToken(token);

            return(result);
        }
Пример #3
0
        /// <summary>
        /// Create Json Web Token
        /// </summary>
        /// <param name="jWTInput"></param>
        /// <param name="claims"></param>
        /// <returns></returns>
        public async Task <string> GenerateJWTToken(JWTInput jWTInput, IEnumerable <Claim> claims)
        {
            var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jWTInput.Key));
            var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);

            var token = new JwtSecurityToken(jWTInput.Issuer,
                                             jWTInput.Issuer,
                                             claims,
                                             expires: jWTInput.ExpiresOn,
                                             signingCredentials: credentials);

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }
Пример #4
0
 public JWTController()
 {
     jwtInput = new JWTInput();
 }