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) }); }
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 }); }
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 )); }
public IActionResult AuthByCredentials([FromBody] AuthByCredentialsDto dto) { return(new JsonResult(_authenticator.AuthByCredentials(dto))); }