public async Task <string> Signup(SignupParameters registerParameters) { var error = await _authorizationApi.Signup(registerParameters); SignalStateChange(); return(error); }
public async Task <string> AcceptInvitation(Invitation invitation, SignupParameters parameters) { var user = await _userManager.FindByEmailAsync(invitation.To); var result = await _userManager.ConfirmEmailAsync(user, parameters.ConfirmationCode); if (!result.Succeeded) // the token might have expired { return(result.ToErrorString()); } var resetPasswordToken = await _userManager.GeneratePasswordResetTokenAsync(user); Assert(await _userManager.ResetPasswordAsync(user, resetPasswordToken, parameters.Password)); user.UserName = parameters.UserName; user.Memberships.Add(new Membership { CircleId = Circle.OpenCircleId }); invitation.AcceptedAt = DateTimeOffset.UtcNow; return(null); // success }
public async Task <IActionResult> Signup(SignupParameters parameters) { var invitation = await _db.Invitations.SingleFirstOrDefaultAsync(i => i.To == parameters.Email); if (invitation == null) { _logger.LogWarning($"Signup attempt with invalid invitation e-mail: {parameters.Email}."); // FIXME: da, rather throw security event with request origin details (IP, port, ...) return(NotFound("Invitation not found.")); } var error = await _invitationService.AcceptInvitation(invitation, parameters); if (!string.IsNullOrEmpty(error)) { return(BadRequest(error)); } await _db.SaveChangesAsync(); return(await Login(new LoginParameters { Email = parameters.Email, Password = parameters.Password })); }
public async Task <string> Signup(SignupParameters signupParameters) { return(await _httpClient.PostAsync(Urls.PostSignup, signupParameters)); }