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 })); }
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) }); }
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) }); }
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)); }
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()); }
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()); }