コード例 #1
0
        public async Task <LoginResponse> Login(LoginRequest model)
        {
            User user = await FindUser(model.Login);

            var role = (await _userManager.GetRolesAsync(user)).FirstOrDefault();

            if (user is null)
            {
                throw new AppExсeption(ExceptionConstant.WrongEmailOrPassword);
            }
            SignInResult result = await _signInManager.PasswordSignInAsync(user, model.Password, true, false);

            if (!result.Succeeded)
            {
                throw new AppExсeption(ExceptionConstant.WrongEmailOrPassword);
            }
            var           authToken    = _jwtHelper.CreateToken(user, role, 1);
            var           refreshToken = _jwtHelper.CreateToken(user, role, 2);
            LoginResponse response     = _mapper.Map <User, LoginResponse>(user);

            response.AuthToken    = authToken;
            response.RefreshToken = refreshToken;
            response.Role         = Enum.Parse <Role>(role);
            return(response);
        }
コード例 #2
0
        public async Task <JwtView> LogIn(LogInRequest logInRequest)
        {
            User user = await UserValidation(logInRequest);

            if (user != null)
            {
                JwtView view = _jwtHelper.CreateToken(user);
                return(view);
            }
            throw new UserNotFoundException("Не правильные данные");
        }