private TokenDates GetTokenDates(TokenConfigurations tokenConfigurations) { try { DateTime dataCriacao = DateTime.Now; DateTime dataExpiracao = dataCriacao.AddSeconds(tokenConfigurations.Seconds); TokenDates tkDt = new TokenDates(dataCriacao, dataExpiracao); return(tkDt); } catch (Exception) { return(null); } }
private string CreateToken(TokenDates tkDate, ClaimsIdentity identity, SigningConfigurations signingConfigurations, TokenConfigurations tokenConfigurations) { try { var handler = new JwtSecurityTokenHandler(); var securityToken = handler.CreateToken(new SecurityTokenDescriptor { Issuer = tokenConfigurations.Issuer, Audience = tokenConfigurations.Audience, SigningCredentials = signingConfigurations.SigningCredentials, Subject = identity, NotBefore = tkDate.NotBefore, Expires = tkDate.Expires }); string token = handler.WriteToken(securityToken); return(token); } catch (Exception ex) { return(null); } }
public AuthResult AuthUser(UserDb userDb, string inputPassword, SigningConfigurations signingConfigurations, TokenConfigurations tokenConfigurations) { try { bool credenciaisValidas = ValidateCredentials(userDb, inputPassword); if (credenciaisValidas) { ClaimsIdentity identity = CreateClaims(userDb); if (identity != null) { TokenDates tkDate = GetTokenDates(tokenConfigurations); if (tkDate != null) { string token = CreateToken(tkDate, identity, signingConfigurations, tokenConfigurations); if (!string.IsNullOrWhiteSpace(token)) { authResult.authenticated = true; authResult.created = tkDate.NotBefore; authResult.expiration = tkDate.Expires; authResult.accessToken = $"Bearer {token}"; authResult.message = "OK"; return(authResult); } else { authResult.authenticated = false; authResult.message = "Falha ao gerar token."; return(authResult); } } else { authResult.authenticated = false; authResult.message = "Falha ao gerar validade do token."; return(authResult); } } else { authResult.authenticated = false; authResult.message = "Impossível gerar token."; return(authResult); } } else { authResult.authenticated = false; authResult.message = "Credenciais inválidas!"; return(authResult); } } catch (Exception ex) { authResult.authenticated = false; authResult.message = "Ocorreu um erro durante a autenticação."; return(authResult); } }