Пример #1
0
        public async Task <UserResultModel> RegisterAsync(string email, string password)
        {
            UserResultModel result = new UserResultModel();

            IdentityUser existingUser = await userManager.FindByEmailAsync(email);

            if (existingUser != null)
            {
                result.Success = false;
                result.Errors  = new[] { "User with this email address already exists." };
                return(result);
            }

            IdentityUser newUser = new IdentityUser()
            {
                Email    = email,
                UserName = email,
            };

            IdentityResult createdUser = await userManager.CreateAsync(newUser, password);

            if (!createdUser.Succeeded)
            {
                result.Success = false;
                result.Errors  = createdUser.Errors.Select(x => x.Description);
                return(result);
            }

            result.Success = true;
            result.Token   = JWTGenerator.Create(newUser);

            return(result);
        }
Пример #2
0
        public async Task <UserResultModel> LoginAsync(string email, string password)
        {
            UserResultModel result = new UserResultModel();

            IdentityUser existingUser = await userManager.FindByEmailAsync(email);

            bool userHasValidPassword = await userManager.CheckPasswordAsync(existingUser, password);

            if (existingUser == null || !userHasValidPassword)
            {
                result.Success = false;
                result.Errors  = new[] { "User/password combination is wrong." };
                return(result);
            }

            result.Success = true;
            result.Token   = JWTGenerator.Create(existingUser);

            return(result);
        }