예제 #1
0
        public async Task <ActionResult <ApiRespnse <SignInApiModel.Response> > > PostAsync(SignInApiModel.Request request)
        {
            var response = new ApiRespnse <SignInApiModel.Response>();

            if (await checkEmail(request.Email))
            {
                return(response);
            }

            var appUser = new Customer()
            {
                Id           = Guid.NewGuid(),
                Email        = request.Email,
                UserName     = request.Email,
                PasswordHash = request.PasswordHash,
                PhoneNumber  = request.PhoneNumber
            };

            var result = await _adminInterface.PostCustomerDetailes(appUser);


            response.Data = new SignInApiModel.Response()
            {
                PhoneNumber    = appUser.PhoneNumber,
                UserName       = appUser.UserName,
                Email          = appUser.Email,
                EmailConfiremd = appUser.EmailConfirmed,
                Id             = appUser.Id.ToString()
            };

            return(Ok(response));
        }
예제 #2
0
        public async Task <ActionResult <ApiResponse <SignInApiModel.Response> > > SignIn(SignInApiModel.Request request)
        {
            var response = new ApiResponse <SignInApiModel.Response>();

            var user = await _userManager.FindByEmailAsync(request.Email);

            if (user == null)
            {
                response.AddError(2);
                return(response);
            }

            var result = await _signInManager.PasswordSignInAsync(user, request.Password, false, false);

            if (result.Succeeded == false)
            {
                response.AddError(3);
                return(response);
            }

            response.Data = new SignInApiModel.Response();


            response.Data.AccessToken  = _tokenService.GenerateAccessToken(await user.GetClaimsAsync(_userManager));
            response.Data.RefreshToken = _tokenService.GenerateRefreshToken();

            user.RefreshToken = response.Data.RefreshToken;

            await _userManager.UpdateAsync(user);

            return(Ok(response));
        }