public async Task <Result> LoginUserAsync(LoginVM model)
        {
            var user = await _userManager.FindByEmailAsync(model.Email);

            var result = await _userManager.CheckPasswordAsync(user, model.Password);

            if (!result || user.Email != model.Email || user == null)
            {
                return(Result.GeneralFailure("Email Or Password Wrong"));
            }


            if (!user.EmailConfirmed)
            {
                return(Result.GeneralFailure("please Check Your Email for Conformation"));
            }

            var userRoles = await _userManager.GetRolesAsync(user);

            var refreshToken = _jwtHandler.CreateRefreshToken(user.Id);
            var token        = _jwtHandler.CreateToken(user, userRoles.FirstOrDefault());

            var jwt = new JsonWebToken
            {
                Token        = token,
                RefreshToken = refreshToken.Token,
            };
            await _context.RefreshTokens.AddAsync(refreshToken);

            await _context.SaveChangesAsync();

            return(Result.ReturnToken(jwt));
        }
예제 #2
0
        public async Task <IActionResult> Create(NewEmpClass nec)
        {
            if (ModelState.IsValid)
            {
                _db.Add(nec);
                await _db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(nec));
        }