public async Task <IHttpActionResult> ResetClientSecret([FromBody] ResetClientSecretBindingModel model) { var client = await ClientService.GetByIdAsync(model.Id); var user = await UserManager.FindByEmailAsync(client.Username); var newClientSecret = ClientService.GenerateClientSecret(); var clientToUpdate = new ClientDto { Id = model.Id, ClientSecret = newClientSecret, Username = client.Username, Active = client.Active, RefreshTokenLifeTime = client.RefreshTokenLifeTime, ApplicationType = ApplicationTypes.NativeConfidential, AllowedOrigin = client.AllowedOrigin }; var updatedClient = await ClientService.Update(clientToUpdate); var messageToSend = "Username: "******"<br>" + "client_id: " + client.Id + "<br>" + "client_secret: " + newClientSecret; await UserManager.SendEmailAsync(user.Id, "Client secret changed", $"{messageToSend}"); return(Ok(updatedClient)); }
public async Task <IHttpActionResult> ResetMyClientSecret([FromBody] ResetClientSecretBindingModel model) { var userName = User.Identity.Name; if (!await ClientService.CheckUserClient(userName, model.Id)) { CustomException.ThrowBadRequestException($"There is no client with id = {model.Id} associated with user: {userName}."); } var user = await UserManager.FindByEmailAsync(userName); var client = await ClientService.GetMyClientAsync(userName, model.Id); if (!client.Active) { CustomException.ThrowBadRequestException($"Client with id = {client.Id} is no more valid."); } var newClientSecret = ClientService.GenerateClientSecret(); var clientToUpdate = new ClientDto { Id = model.Id, ClientSecret = newClientSecret, Username = userName, Active = client.Active, RefreshTokenLifeTime = client.RefreshTokenLifeTime, ApplicationType = ApplicationTypes.NativeConfidential, AllowedOrigin = client.AllowedOrigin }; var updatedClient = await ClientService.Update(clientToUpdate); var messageToSend = "Username: "******"<br>" + "client_id: " + client.Id + "<br>" + "client_secret: " + newClientSecret; await UserManager.SendEmailAsync(user.Id, "Client secret changed", $"{messageToSend}"); return(Ok(updatedClient)); }