Я пытаюсь установить токен JWT для аутентификации, когда я пытаюсь получить данные из ioapi , во -первых, получить токен, а затем получить авторизацию данных. Авторизировать данные.
Я пытаюсь установить установку URL Mainapi в моей аудитории ioapi , но на нем нет Mainapi . . < /p>
Это мой код API: < /p>
Код: Выделить всё
[HttpGet]
[Route("GetInputByID1")]
public async Task GetInputByID1()
{
try
{
var tokenResponse = await client.GetAsync("http://localhost:5173/api/Auth/GenerateToken");
if (!tokenResponse.IsSuccessStatusCode)
{
return StatusCode((int)tokenResponse.StatusCode, "Failed to get JWT token from DBAPI.");
}
var tokenResult = await tokenResponse.Content.ReadAsStringAsync();
var tokenObj = JsonConvert.DeserializeObject(tokenResult);
string jwtToken = tokenObj?.token;
return Ok(jwtToken);
}
catch (Exception ex)
{
_logger.LogError($"Error: {ex.Message}");
return StatusCode(500, $"An error occurred: {ex.Message}");
}
}
< /code>
IoApi
Код: Выделить всё
[HttpGet("GenerateToken")]
public IActionResult GenerateToken()
{
var request = HttpContext.Request;
string callerUrl =$"{ request.Scheme }://{ request.Host }{ request.Path }{ request.QueryString }";
_logger.LogInformation($"base ....... {callerUrl}");
var secretKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("sJw1Pq5/D2S98XTX7h0IrsnZ5/Eih8XocFq58a0vIVY="));
var signinCredentials = new SigningCredentials(secretKey, SecurityAlgorithms.HmacSha256);
var claims = new List
{
new Claim(JwtRegisteredClaimNames.Iss, "http://localhost:5173"),
new Claim(JwtRegisteredClaimNames.Aud, callerUrl)
};
var tokenOptions = new JwtSecurityToken(
issuer: "http://localhost:5173",
audience: callerUrl,
claims: claims,
expires: DateTime.UtcNow.AddMinutes(30),
signingCredentials: signinCredentials
);
var tokenString = new JwtSecurityTokenHandler().WriteToken(tokenOptions);
return Ok(new { Token = tokenString });
}
[Authorize]
[HttpGet]
public IActionResult GetData()
{
return Ok(new { message = "Protected data retrieved successfully!" });
}
< /code>
When I call fromMainApi
Как сделать Mainapi запрос URL установлен в моей аудитории?>
Подробнее здесь: https://stackoverflow.com/questions/794 ... t-audience