public async Task <IActionResult> Post([FromBody] CredentialsModel model) { string token; try { token = await authAdapter.Authenticate(model); } catch (ApplicationAuthenticationException exception) { return(new BadRequestObjectResult(exception.Message)); } return(new OkObjectResult(token)); }
public async Task <JsonResult> Login([FromBody] LoginViewModel vm) { try { if (ModelState.IsValid) { // check if any values tracked in Auth0 have changed LoginResponseViewModel responseVM = await _authAdapter.Authenticate(vm); var user = _userRepo.GetUserByExternalId(responseVM.ExternalId); if (user == null) { user = _userRepo.GetAppUserByEmail(vm.Email); if (user == null) { throw new Exception("Unable to locate user"); } else { //update with externalId user.ExternalId = responseVM.ExternalId; _userRepo.Base.SaveAll(User); } } responseVM.AppUserId = user.AppUserId; responseVM.AvatarUrl = user.AvatarUrl; responseVM.Email = user.Email; responseVM.FullName = user.FirstName + " " + user.LastName; responseVM.AdAssassinId = user.AdAssassinId; responseVM.Roles = user.UserRoles.Select(k => k.Role.Name).ToArray(); Response.StatusCode = (int)HttpStatusCode.OK; return(Json(responseVM)); } else { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(MsgFactory.Error(ModelState))); } } catch (Exception ex) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(MsgFactory.Error(ex))); } }