public IActionResult SearchUser(Guid Id) { HttpContext.Request.Headers.TryGetValue("Authorization", out StringValues bearerToken); string token = bearerToken.ToString().Replace("Bearer", "").Trim(); UserSessionStatus userStatus = userService.AuthenticateSession(Id, token, out User user).Result; switch (userStatus) { case UserSessionStatus.Authorized: return(Ok(new { id = user.Id, createdOn = user.CreatedOn, lastUpdatedOn = user.LastUpdatedOn, lastLoginOn = user.LastLoginOn, token = user.Token })); case UserSessionStatus.Unauthorized: { return(Ok(new { message = "Unauthorized" })); } case UserSessionStatus.InvalidSession: { return(Ok(new { message = "Invalid Session" })); } } return(Ok(new { message = "Error" })); }
public void AuthenticateSession_InvalidUserId_Test() { // Arrange string jwtToken = ""; Guid userId = Guid.NewGuid(); userRepository.Setup(x => x.FindUserById(userId)).Returns((DbUser)null); userService_UnderTest = new UserService(userRepository.Object, tokenManager.Object, mapper.Object); // Act UserSessionStatus userStatus = userService_UnderTest.AuthenticateSession(userId, jwtToken, out DomainUser user).Result; // Assert Assert.Equal(UserSessionStatus.Unauthorized, userStatus); }
public void AuthenticateSession_InvalidToken_Test() { // Arrange string jwtToken = "Invalid-Token"; Guid userId = Guid.NewGuid(); userRepository.Setup(x => x.FindUserById(userId)).Returns( new DbUser() { Id = userId, Token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IjZiNDYzZjVlLTZlNDItNDU3Mi04OGMxLTQxODE3MTQ3NDc5MSIsIm5iZiI6MTU1ODk0MTkzMCwiZXhwIjoxNTU4OTQzNzMwLCJpYXQiOjE1NTg5NDE5MzB9.46Zr8u8QA0aL2ujrRvZM0eLXrkgzvRXtXACoQQcx1I4" }); userService_UnderTest = new UserService(userRepository.Object, tokenManager.Object, mapper.Object); // Act UserSessionStatus userStatus = userService_UnderTest.AuthenticateSession(userId, jwtToken, out DomainUser user).Result; // Assert Assert.Equal(UserSessionStatus.Unauthorized, userStatus); }
public UserSessionContext(Guid sessionId, UserInfo user, DateTime startedOn, string token, string csrfToken, UserSessionStatus status, LogLevel logLevel, long version, int timeZoneOffsetMinutes, string userAgent = null, IDictionary <string, object> values = null) { SessionId = sessionId; User = user; StartedOn = startedOn; Token = token; CsrfToken = csrfToken; _status = status; _logLevel = logLevel; Version = version; _timeZoneOffset = timeZoneOffsetMinutes; _userAgent = userAgent; if (values != null && values.Count > 0) { foreach (var de in values) { _values[de.Key] = de.Value; } } _modified = false; }