示例#1
0
        public async Task <ActionResult <UserDTOs> > Login(LoginDTOs login)
        {
            var command  = new AccountLoginCommand(login);
            var response = await _mediator.Send(command);

            return(response);
        }
        public async Task <Response <TokenDTOs> > CreateTokenAsync(LoginDTOs loginDTOs)
        {
            if (loginDTOs == null)
            {
                throw new ArgumentNullException(nameof(loginDTOs));
            }
            var user = await _userManager.FindByEmailAsync(loginDTOs.Email);

            if (user == null)
            {
                return(Response <TokenDTOs> .Fail("Email or Password is wrong", 400, true));
            }
            if (!await _userManager.CheckPasswordAsync(user, loginDTOs.Password))
            {
                return(Response <TokenDTOs> .Fail("Email or Password is wrong", 400, true));
            }
            var token            = _tokenService.CreateToken(user);
            var userRefreshToken = await _userRefreshTokenRepository.Where(refk => refk.UserId == user.Id).SingleOrDefaultAsync();

            if (userRefreshToken == null)
            {
                await _userRefreshTokenRepository.AddAsync(new UserRefreshToken { UserId = user.Id, Code = token.RefreshToken, Expiration = token.RefreshTokenExpiration });
            }
            else
            {
                userRefreshToken.Code       = token.RefreshToken;
                userRefreshToken.Expiration = token.RefreshTokenExpiration;
            }

            await _unitOfWork.CommitAsync();

            return(Response <TokenDTOs> .Success(token, 200));
        }
示例#3
0
        public async Task <ActionResult <UserDTOs> > logg(LoginDTOs log)
        {
            var user = await data.users.SingleOrDefaultAsync(x => x.Username == log.username);

            if (user == null)
            {
                return(Unauthorized("Invalid Username"));
            }

            using var hmac = new HMACSHA512(user.PasswordSalt);
            var logpassword = hmac.ComputeHash(Encoding.UTF8.GetBytes(log.password));

            for (int i = 0; i < user.PasswordHash.Length; i++)
            {
                if (logpassword[i] != user.PasswordHash[i])
                {
                    return(Unauthorized("Invalid Password"));
                }
            }

            return(new UserDTOs
            {
                Username = user.Username,
                Token = itok.CreateToken(user)
            });
        }
示例#4
0
        public async Task <ActionResult <UserDto> > Login(LoginDTOs loginDto)
        {
            //var user = await _context.Users
            var user = await _userManager.Users
                       .Include(p => p.Photos)
                       .SingleOrDefaultAsync(x => x.UserName == loginDto.Username.ToLower());

            if (user == null)
            {
                return(Unauthorized("Invalid username"));
            }

            // using var hmac = new HMACSHA512(user.PasswordSalt);
            // var computedHash = hmac.ComputeHash(Encoding.UTF8.GetBytes(loginDto.Password));
            // //Compare PSW bytes
            // for (int i =0; i < computedHash.Length; i++){
            //     if(computedHash[i] != user.PasswordHash[i]) return Unauthorized("Invalid password.");
            // }

            var result = await _signInManager
                         .CheckPasswordSignInAsync(user, loginDto.Password, false);

            if (!result.Succeeded)
            {
                return(Unauthorized());
            }

            //return user;
            return(new UserDto {
                Username = user.UserName,
                Token = await _tockenService.CreateTocken(user),
                PhotoUrl = user.Photos.FirstOrDefault(x => x.IsMain)?.Url,
                KnownAs = user.KnownAs,
                Gender = user.Gender
            });
        }
示例#5
0
 public LoginDTOs GetLoginData(LoginDTOs loginModel)
 {
     throw new NotImplementedException();
 }
 public AccountLoginCommand(LoginDTOs user)
 {
     UserLogin = user;
 }
示例#7
0
        public async Task <IActionResult> CreateToken(LoginDTOs loginDTOs)
        {
            var result = await _authenticationService.CreateTokenAsync(loginDTOs);

            return(ActionResultInstance(result));
        }