public IActionResult Authorize([FromBody] AuthorizationRequestDto userLoginRequestData) { var user = _accountService.Authorize(userLoginRequestData.Email, userLoginRequestData.Password); var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_appSettings.Secret); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, user.Id.ToString()) }), Expires = DateTime.UtcNow.AddDays(7), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); string tokenString = tokenHandler.WriteToken(token); // Returning basic user info (without password) and token to store client side var response = new AuthorizationResponseDto() { Id = user.Id, Username = user.Username, Token = tokenString }; return(Ok(response)); }
public async Task <string> GetAuthToken(string url, string userName, string userPassword) { var request = new AuthorizationRequestDto(userName, userPassword); var response = await _requestProvider.PostAsync <AuthorizationResponseDto>(url, request); return(response.Token); }
public void AuthorizeReturnsOkIfTokenCreatedWithoutException() { var loginRequest = new AuthorizationRequestDto() { Email = "username", Password = "******" }; _accountServiceMock .Setup(service => service.Authorize(loginRequest.Email, loginRequest.Password)) .Returns(new User() { Id = 1, Email = "email", Username = "******" }); IActionResult result = this.AccountControllerInstance.Authorize(loginRequest); Assert.IsType <OkObjectResult>(result); }