public async Task <IActionResult> RegisterAsync([FromBody] ValidableCredentials credentials) { var actionResponseBuilder = GetEmptyResponseBuilder <ValidableSession>(); try { if (ModelState.IsValid) { var session = await _sessionService.RegisterAsync(credentials); actionResponseBuilder.SetData(session); return(Ok(actionResponseBuilder.Build())); } else { return(BadRequest(ModelState)); } } catch (Exception ex) { actionResponseBuilder.AddError(new Common.Utilities.ErrorMessage(Common.Enums.ErrorType.Invalid, ex.Message)); return(BadRequest(actionResponseBuilder.Build())); } }
public async Task <ValidableSession> RegisterAsync(ValidableCredentials credentials) { var user = credentials.ToUser <TUser>(); var resultFlag = await _userService.CreateAsync(user, credentials.Password, credentials.Parameters); if (resultFlag) { var roles = await _userService.GetRolesAsync(user); var claims = await _userService.GetClaimsAsync(user); var tokenInfo = _tokenHelper.Generate(user, roles, claims, _securitySettings.PrivateKey); var session = new ValidableSession(user, tokenInfo, credentials.Parameters); return(session); } else { throw new AuthenticationException($"User {user.UserName} could not be created"); } }