public async Task <IActionResult> Login(LoginMemberDto loginMemberDto) { Member member = await _authService.Login(loginMemberDto); if (member == null) { return(Unauthorized("İstifadəçi adında və ya kodda səflik var.")); } string role = await _authService.Role(member); var claims = new Claim[] { new Claim(ClaimTypes.NameIdentifier, member.Id.ToString()), new Claim(ClaimTypes.Name, member.Name + " " + member.Surname), new Claim(ClaimTypes.GivenName, member.UserName), new Claim(ClaimTypes.Role, role) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration.GetSection("AppSettings:Token").Value)); var publicKey = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescription = new SecurityTokenDescriptor() { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(365), SigningCredentials = publicKey }; var JWThandler = new JwtSecurityTokenHandler(); var token = JWThandler.CreateToken(tokenDescription); return(Ok(new { Token = JWThandler.WriteToken(token) })); }
public async Task <Member> Login(LoginMemberDto loginMemberDto) { Member member = await _memberRepository.GetMember(loginMemberDto.UserName); if (member == null) { return(null); } if (!member.Password.DecryptTextWithBCrypt(loginMemberDto.Password)) { return(null); } return(member); }