Подтверждение по электронной почте в ASP.NET Core и Angular 7 (с использованием IdentityUser) - PullRequest
0 голосов
/ 13 июня 2019

Я хочу внедрить подтверждение электронной почты в свой процесс регистрации, я использую Angular 7 в качестве клиента, я пытался реализовать его самостоятельно с помощью учебных пособий, но большинство из них для MVC ... Я хочу точно знать, что мне нужно, икак это должно работать ...

вот мой код:

ASP ядро:

        [HttpPost]
        [Route("Register")]
        public async Task<object> PostAppUser(AppUserModel model)
        {
            var result = await _userService.Register(model);

            if (result != null)
                return Ok(result);
            else
                return BadRequest(new { message = "Register failed! Please try again later" });
        }

  public async Task<object> Register(AppUserModel model)
        {
            if (model.SpecialCode == _appSettings.Special_Code)
                model.Role = "admin";
            else
                model.Role = "customer";

            var appUser = new AppUser()
            {
                UserName = model.UserName,
                Email = model.Email,
                FullName = model.FullName,
            };

            try
            {
                var result = await _userManager.CreateAsync(appUser, model.Password);
                await _userManager.AddToRoleAsync(appUser, model.Role);

                return result;
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }

Запуск:

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    services.AddScoped<IUserService, UserService>();
    services.AddDbContext<AuthContext>(options =>
    options.UseSqlServer(Configuration.GetConnectionString("IdentityConnection")));
    services.AddDefaultIdentity<AppUser>()
    .AddRoles<IdentityRole>()
    .AddEntityFrameworkStores<AuthContext>();

Угловой:

 onSubmit(form: NgForm, userName: string) {
    this.userService.login(form.value).subscribe(
      (res: any) => {
        localStorage.setItem('token', res.token);
        this.router.navigateByUrl('/home');
        this.toastr.success('Welcome ' + userName + '!' , 'Authentication granted');
      },
      (err: any) => {
        if (err.status === 400) {
          this.toastr.error('Incorrect User name of Password!', 'Authentication failed');
          form.reset();
        } else {
          this.toastr.error('Our servers is down at the moment', 'Try again later');
          form.reset();
        }
      }
...