public object Login([FromBody] AuthUserCommand command) { dynamic user = _handler.Handle(command); if (user.Status) { string id = user.Data.Id.ToString(); string name = (string)user.Data.Name; string email = (string)user.Data.Email; ClaimsIdentity identity = new ClaimsIdentity( new GenericIdentity(name, "Name"), new[] { new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")), new Claim(JwtRegisteredClaimNames.NameId, id), new Claim(JwtRegisteredClaimNames.UniqueName, name), new Claim(JwtRegisteredClaimNames.Email, email) } ); DateTime createDate = DateTime.Now; DateTime expireDate = createDate + TimeSpan.FromHours(1); var handler = new JwtSecurityTokenHandler(); var securityToken = handler.CreateToken(new SecurityTokenDescriptor { Issuer = _tokenConfigurations.Issuer, Audience = _tokenConfigurations.Audience, SigningCredentials = _signingConfigurations.Credentials, Subject = identity, NotBefore = createDate, Expires = expireDate }); var token = handler.WriteToken(securityToken); return(new { status = true, created = createDate.ToString("yyyy-MM-dd HH:mm:ss"), expiration = expireDate.ToString("yyyy-MM-dd HH:mm:ss"), accessToken = token, message = "Seja Bem-Vindo", user = user }); } else { return(new { status = false, message = "Usuário não encontrado, por favor verifique se os dados estão corretos" }); } }
public async Task AuthHandlerReturnsSameDetails() { // ARRANGE var httpMessageHandlerMock = new Mock <HttpMessageHandler>(MockBehavior.Strict); TestUtils.GetProtectedHttpResponseMessageMock(httpMessageHandlerMock) .Verifiable(); var httpClient = TestUtils.GetMockedClient(httpMessageHandlerMock); var currentTimeStamp = DateTime.Now; var existingAuthDetails = new AuthDetails { Token = "OLD_TOKEN", Timestamp = currentTimeStamp }; // ACT var result = await subject.Handle(existingAuthDetails, httpClient); // ASSERT result.Token.Should().Be("OLD_TOKEN"); result.Timestamp.Should().Be(currentTimeStamp); httpMessageHandlerMock.Invocations.Should().HaveCount(0); }