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