Esempio n. 1
0
        public ActionResult Register(Models.RegisterModel model)
        {
            if (!ReCaptcha.Validate(DataUtils.GetConfig("reCaptcha:SecretKey")))
            {
                ModelState.AddModelError("", "Captcha cannot be empty");
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var users = _auth0Helper.SearchAuth0UserByEmail(model.EmailAddress);
                    if (!users.Any())
                    {
                        var newUser = new SignupUserRequest();
                        newUser.ClientId     = Auth0Helper.Auth0ClientId;
                        newUser.Connection   = Auth0Helper.Connection;
                        newUser.Email        = model.EmailAddress;
                        newUser.Password     = model.Password;
                        newUser.UserMetadata = new { model.FirstName, model.LastName, model.PhoneNumber };

                        SignupUserResponse response = _client.SignupUserAsync(newUser).Result;

                        var customer = new AccountProfileModel(model.Content)
                        {
                            UserId       = $"auth0|{response.Id}",
                            EmailAddress = model.EmailAddress,
                            FirstName    = model.FirstName,
                            LastName     = model.LastName
                        };

                        MailController.Instance(Request, model.Content, CurrentUser.LanguageCode).RegistrationConfirmMail(customer).Send();
                        return(Redirect($"/{CurrentUser.LanguageCode}/account/confirm-your-email-address/"));
                    }
                    else
                    {
                        var unverifiedUser = users.FirstOrDefault(u => u.UserId.StartsWith("auth0") && u.EmailVerified == false);
                        if (unverifiedUser != null)
                        {
                            return(Redirect($"/{CurrentUser.LanguageCode}/account/resend-email-verification/?u={unverifiedUser.UserId}"));
                        }
                        ModelState.AddModelError("", "E-mail adress already exists");
                    }
                }
                catch (Exception e)
                {
                    HandleAuth0Exception(e);
                }
            }
            return(CurrentUmbracoPage());
        }
Esempio n. 2
0
        private async void RegisterUser(ANWI.Messaging.RegisterRequest reg)
        {
            logger.Info($"Registering new user {reg.username}");

            SignupUserRequest req = new SignupUserRequest()
            {
                ClientId   = Configuration.auth0Settings.client,
                Connection = Configuration.auth0Settings.connection,
                Email      = reg.email,
                Password   = reg.password
            };

            ANWI.Messaging.RegisterResponse.Code code
                = ANWI.Messaging.RegisterResponse.Code.OK;

            try {
                SignupUserResponse resp
                    = await auth0Client.SignupUserAsync(req);

                if (!CreateDatabaseUser(reg.username, "auth0|" + resp.Id))
                {
                    code = ANWI.Messaging.RegisterResponse.
                           Code.FAILED_SERVER_ERROR;
                }
            } catch (Auth0.Core.Exceptions.ApiException e) {
                logger.Error(
                    $"Failed to register email {reg.email}: {e.Message}");
                code = ANWI.Messaging.RegisterResponse.
                       Code.FAILED_ALREADY_EXISTS;
            } catch (Exception e) {
                logger.Error($"Other exception caught: {e.Message}");
                code = ANWI.Messaging.RegisterResponse.Code.FAILED_SERVER_ERROR;
            }

            ANWI.Messaging.Message confirm = new ANWI.Messaging.Message(
                0,
                new ANWI.Messaging.RegisterResponse(code));

            SendMessage(confirm);
        }