Exemplo n.º 1
0
 private static Claim[] GenerateClaims(AuthByCredentialsDto dto, DateTime tokenAuthTime)
 {
     return(new Claim[]
     {
         new Claim(JwtRegisteredClaimNames.Sub, dto.Login),
         new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
         new Claim(JwtRegisteredClaimNames.Iat, tokenAuthTime.ToUniversalTime().ToString(), ClaimValueTypes.Integer64)
     });
 }
Exemplo n.º 2
0
        public UserContext AuthByCredentials(AuthByCredentialsDto dto)
        {
            if (dto.Login != "root" || dto.Password != "root")
            {
                throw new UnauthorizedAccessException();
            }

            JwtSecurityToken jwt = GenerateToken(dto);

            return(new UserContext
            {
                AccessToken = new JwtSecurityTokenHandler()
                              .WriteToken(jwt),
                ExpiresIn = (int)TimeSpan
                            .FromMinutes(_authOptions.Value.Lifetime)
                            .TotalSeconds
            });
        }
Exemplo n.º 3
0
        private JwtSecurityToken GenerateToken(AuthByCredentialsDto dto)
        {
            var authTime = DateTime.UtcNow;
            var claims   = GenerateClaims(dto, authTime);

            var epxiresInTime = authTime.Add(
                TimeSpan.FromMinutes(_authOptions.Value.Lifetime)
                );

            var credentials = new SigningCredentials(
                _authOptions.Value.GetSecurityKey(),
                SecurityAlgorithms.HmacSha256
                );

            return(new JwtSecurityToken(
                       issuer: _authOptions.Value.Issuer,
                       audience: _authOptions.Value.Audience,
                       claims: claims,
                       notBefore: authTime,
                       expires: epxiresInTime,
                       signingCredentials: credentials
                       ));
        }
Exemplo n.º 4
0
 public IActionResult AuthByCredentials([FromBody] AuthByCredentialsDto dto)
 {
     return(new JsonResult(_authenticator.AuthByCredentials(dto)));
 }