Exemple #1
0
        public async Task <TokenResponse> GenerateSecurityToken(SaveTokenResource client)
        {
            try
            {
                var tokenHandler    = new JwtSecurityTokenHandler();
                var key             = Encoding.ASCII.GetBytes(_secret);
                var tokenDescriptor = new SecurityTokenDescriptor
                {
                    Subject = new ClaimsIdentity(new[]
                    {
                        new Claim(ClaimTypes.Email, client.ClientEmail)
                    })
                    ,
                    Expires            = DateTime.UtcNow.AddMinutes(double.Parse(_expDate)),
                    SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
                };

                var   token    = tokenHandler.CreateToken(tokenDescriptor);
                Token tokenObj = new Token();
                tokenObj.ClientEmail = client.ClientEmail;
                tokenObj.ClientToken = tokenHandler.WriteToken(token);

                return(new TokenResponse(tokenObj));
            }
            catch (Exception e)
            {
                return(new TokenResponse($"An error occurred when generation token to {client.ClientEmail}: {e.Message}"));
            }
        }
Exemple #2
0
        public async Task <ActionResult <TokenResource> > PostLoginToken([FromBody] SaveTokenResource resource)
        {
            var jwt = new JwtService(_config);

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }

            //
            var result = await jwt.GenerateSecurityToken(resource);

            if (!result.Success)
            {
                return(BadRequest(result.Message));
            }

            var tokenResource = _mapper.Map <Token, TokenResource>(result.Token);

            return(Ok(tokenResource));
        }