public async Task <TenantLoginDto> Login(TenantOrEducatorLoginDto input) { var user = await _tenantRepository.GetAll() .FirstOrDefaultAsync(x => x.Email == input.Email); if (user == null) { throw new Exception("There is no user!"); } var decodedPassword = SecurePasswordHasherHelper.Verify(input.Password, user.Password); if (!decodedPassword) { return(null); } var result = new TenantLoginDto { Id = user.Id, EntityType = EntityType.Tenant, TenantName = user.TenantName }; return(result); }
public async Task <IActionResult> Post([FromBody] TenantOrEducatorLoginDto request) { if (ModelState.IsValid) { if (request.EntityType == "Tenant") { var loginData = await _tenantAppService.Login(request); if (loginData == null) { return(NotFound()); } var claims = new[] { new Claim(JwtRegisteredClaimNames.Sub, request.Email), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()) }; var token = new JwtSecurityToken ( issuer: _configuration["Issuer"], audience: _configuration["Audience"], claims: claims, expires: DateTime.UtcNow.AddDays(30), // 30 gün geçerli olacak notBefore: DateTime.UtcNow, signingCredentials: new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["SigningKey"])), //appsettings.json içerisinde bulunan signingkey değeri SecurityAlgorithms.HmacSha256) ); return(Ok(new { token = new JwtSecurityTokenHandler().WriteToken(token), loginData })); } if (request.EntityType == "Educator") { var loginData = await _educatorAppService.Login(request); if (loginData == null) { return(NotFound()); } var claims = new[] { new Claim(JwtRegisteredClaimNames.Sub, request.Email), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()) }; var token = new JwtSecurityToken ( issuer: _configuration["Issuer"], audience: _configuration["Audience"], claims: claims, expires: DateTime.UtcNow.AddDays(30), // 30 gün geçerli olacak notBefore: DateTime.UtcNow, signingCredentials: new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["SigningKey"])), //appsettings.json içerisinde bulunan signingkey değeri SecurityAlgorithms.HmacSha256) ); return(Ok(new { token = new JwtSecurityTokenHandler().WriteToken(token), loginData })); } } return(BadRequest()); }