public async Task <IActionResult> Login(DtoUserForLogin DtoUserForLogin) { var user = await _authRepository.Login(DtoUserForLogin.username.ToLower(), DtoUserForLogin.password); if (user == null) { return(Unauthorized()); } var claim = new[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), new Claim(ClaimTypes.Name, user.Username) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(config.GetSection("AppSettings:Token").Value)); var cred = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claim), Expires = DateTime.Now.AddDays(1), SigningCredentials = cred }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); return(Ok(new{ token = tokenHandler.WriteToken(token) })); }
public async Task <IActionResult> Available(DtoUserForLogin dto) { dto.UserName = dto.UserName.ToLower(); var swAvailable = await _repo.UserExits(dto.UserName); return(Ok(!swAvailable)); }
public async Task <IActionResult> Login(DtoUser dto) { dto.UserName = dto.UserName.ToLower(); var userFromRepos = await _repo.Login(dto.UserName, dto.Password); if (userFromRepos == null) { return(Unauthorized("Pas autorisé à se connecter")); } var claims = new[] { new Claim(ClaimTypes.NameIdentifier, userFromRepos.Id.ToString()), new Claim(ClaimTypes.Name, userFromRepos.UserName) }; var appSettingsToken = _configuration.GetSection("AppSettings:Token").Value; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(appSettingsToken)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = creds, }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); var loginDto = new DtoUserForLogin { UserName = dto.UserName, Token = tokenHandler.WriteToken(token) }; return(Ok(loginDto)); }
public async Task <bool> PostAvailable(DtoUserForLogin dto) { var swAvailable = false; if (dto.UserName == "" || dto.UserName.Length <= 2 || dto.UserName.Length > 30) { return(swAvailable); } var reqJson = JsonConvert.SerializeObject(dto); using (var req = new HttpRequestMessage(HttpMethod.Post, $"{Constants.Base_URL}api/User/available")) { req.Content = new StringContent(reqJson, Encoding.Default, "application/json"); using (var response = await _httpClient.SendAsync(req)) { if (response.StatusCode == HttpStatusCode.OK) { swAvailable = Convert.ToBoolean(await response.Content.ReadAsStringAsync()); } } } return(swAvailable); }
public async Task <IActionResult> Login(DtoUserForLogin userForLogin) { var loginUser = await _repo.Login(userForLogin.Username.ToLower(), userForLogin.Password); if (loginUser == null) { return(Unauthorized()); } var userToReturn = _mapper.Map <UserForListDto>(loginUser); return(Ok(new { token = GenerateJwtToken(loginUser), user = userToReturn })); //var user = await _userManager.FindByNameAsync(userForLogin.Username); //var result = await _signInManager // .CheckPasswordSignInAsync(user, userForLogin.Password, false); //if (result.Succeeded) //{ // //var appUser = await _userManager.Users.Include(p => p.Photos) // // .FirstOrDefaultAsync(u => u.NormalizedUserName == userForLoginDto.Username.ToUpper()); // //var userToReturn = _mapper.Map<UserForListDto>(appUser); // //return Ok(new // //{ // // token = GenerateJwtToken(appUser).Result, // // user = userToReturn // //}); //} }