예제 #1
0
        public async Task <IActionResult> GetToken([FromBody] IsRegisteredDto credentials)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userToVerify = await _userManager.FindByEmailAsync(credentials.Email);

            if (userToVerify == null)
            {
                return(await Task.FromResult <IActionResult>(BadRequest(Errors.AddErrorToModelState("login_failure", "Invalid username.", ModelState))));
            }

            var identity = await _jwtFactory.GenerateClaimsIdentity(credentials.Email, userToVerify.Id);

            if (identity == null)
            {
                return(BadRequest(Errors.AddErrorToModelState("login_failure", "Invalid username.", ModelState)));
            }
            var customer = _userRepository.GetCustomerByIdentityId(identity.Claims.Single(c => c.Type == Constants.Strings.JwtClaimIdentifiers.Id).Value);

            if (customer == null)
            {
                return(NotFound());
            }
            var ip        = _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString();
            var userAgent = _httpContextAccessor.HttpContext.Request.Headers["User-Agent"];

            string jwt;

            try
            {
                jwt = await Tokens.GenerateJwt(identity, _jwtFactory, credentials.Email, _jwtOptions,
                                               customer.Id, ip, userAgent);
            }
            catch (DbUpdateConcurrencyException ex)
            {
                return(Conflict());
            }
            catch (Exception e)
            {
                return(BadRequest());
            }

            return(Ok(JsonConvert.DeserializeObject(jwt)));;
        }
예제 #2
0
 public async Task <IActionResult> IsRegistered([FromBody] IsRegisteredDto credentials)
 {
     if (ModelState.IsValid)
     {
         if ((await _userManager.FindByEmailAsync(credentials.Email)) != null)
         {
             return(Ok(true));
         }
         else
         {
             return(Ok(false));
         }
     }
     else
     {
         return(BadRequest(ModelState));
     }
 }
예제 #3
0
 public IActionResult IsRegistered([FromBody] IsRegisteredDto credentials)
 {
     if (ModelState.IsValid)
     {
         if (_dbContext.Customers.Where(u => u.Identity.Email == credentials.Email).Any())
         {
             return(Ok(true));
         }
         else
         {
             return(Ok(false));
         }
     }
     else
     {
         return(BadRequest(ModelState));
     }
 }