コード例 #1
0
        public async Task <ActionResult> SignIn(RegisterDtos input)
        {
            if (!await authRepository.UserExist(input.Email.ToLower()))
            {
                BadRequest("Email does't exist");
            }
            var person = await authRepository.SignIn(mapper.Map <Person>(input), input.Password);

            if (person == null)
            {
                return(Unauthorized());
            }
            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Encoding.ASCII.GetBytes(configuration.GetSection("AppSettings:Token").Value);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[] {
                    new Claim(ClaimTypes.NameIdentifier, person.Id.ToString()),
                    new Claim(ClaimTypes.Name, person.Email)
                }),
                Expires            = DateTime.Now.AddDays(1),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha512Signature)
            };
            var token       = tokenHandler.CreateToken(tokenDescriptor);
            var tokenString = tokenHandler.WriteToken(token);

            return(Ok(new { tokenString }));
        }
コード例 #2
0
        public async Task <ActionResult <UserDto> > Register(RegisterDtos registerDtos)
        {
            if (await UserExists(registerDtos.Username))
            {
                return(BadRequest("Username is taken"));
            }

            using var hmac = new HMACSHA512();

            var user = new AppUser
            {
                UserName     = registerDtos.Username.ToLower(),
                PasswordHash = hmac.ComputeHash(Encoding.UTF8.GetBytes(registerDtos.Password)),
                PasswordSalt = hmac.Key
            };

            _context.Users.Add(user);
            await _context.SaveChangesAsync();

            return(new UserDto
            {
                Username = user.UserName,
                Token = _tokenService.CreateToken(user)
            });
        }
コード例 #3
0
        public async Task <ActionResult <UserDto> > Register(RegisterDtos Dtos)
        {
            Debug.Write("Logged IN");

            if (await UserExist(Dtos.UserName))
            {
                return(BadRequest("Username is taken!"));
            }

            var hmac = new HMACSHA512();


            var user = new AppUser
            {
                UserName     = Dtos.UserName.ToLower(),
                PasswordHash = hmac.ComputeHash(Encoding.UTF8.GetBytes(Dtos.Password)),
                Passwordsalt = hmac.Key
            };

            context.Users.Add(user);
            await context.SaveChangesAsync();


            return(new UserDto
            {
                UserName = user.UserName,
                Token = tokenService.CreateToken(user)
            });
        }
コード例 #4
0
        public async Task <IActionResult> Register([FromBody] RegisterDtos Userdto)
        {
            // throw new Exception("take it register");
            Userdto.Username = Userdto.Username.ToLower();
            if (await _authRepo.ExistingUser(Userdto.Username))
            {
                return(BadRequest("Username is already taken"));
            }

            var UserModel  = _mapper.Map <User>(Userdto);
            var createUser = await _authRepo.Register(UserModel, Userdto.Password);

            var usertoreturn = _mapper.Map <UserDTO>(createUser);

            return(CreatedAtRoute("getUser", new { controller = "User", id = createUser.Id }, usertoreturn));
        }
コード例 #5
0
        public async Task <ActionResult> Staff([FromBody] RegisterDtos input)
        {
            if (await authRepository.UserExist(input.Email.ToLower()))
            {
                BadRequest("Email already exist");
            }
            var person = await authRepository.SigningUp(mapper.Map <Person>(input), input.Password);

            person = await context.Person.FirstAsync(person => person.Email == input.Email);

            var staff   = new Staff();
            var account = new StringExtensioncs();

            staff.PersonID = person.Id;
            await context.Staff.AddAsync(staff);

            await context.SaveChangesAsync();

            return(Ok());
        }
コード例 #6
0
        public async Task <ActionResult> Customer([FromBody] RegisterDtos input)
        {
            if (await authRepository.UserExist(input.Email.ToLower()))
            {
                BadRequest("Email already exist");
            }
            var person = await authRepository.SigningUp(mapper.Map <Person>(input), input.Password);

            person = await context.Person.FirstAsync(person => person.Email == input.Email);

            var customer = new Customer();
            var account  = new StringExtensioncs();

            customer.PersonId      = person.Id;
            customer.AccountNumber = account.GenerateAccountNumber();
            await context.Customer.AddAsync(customer);

            await context.SaveChangesAsync();

            return(Ok());
        }