admin管理员组文章数量:1277568
I have two APIs, MainApi
and IoApi
.
I try to set JWT token for authentication, when I try to get data from IoApi
, first of all get Token and then get authorize data.
But in my case, I set the audience and I try to get data from another API, so there are also get the authorize data.
I try to set the MainApi
url set in my IoApi
audience, but there are not get MainApi
url on it...
This my API code :
[HttpGet]
[Route("GetInputByID1")]
public async Task<IActionResult> 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<dynamic>(tokenResult);
string jwtToken = tokenObj?.token;
return Ok(jwtToken);
}
catch (Exception ex)
{
_logger.LogError($"Error: {ex.Message}");
return StatusCode(500, $"An error occurred: {ex.Message}");
}
}
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<Claim>
{
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!" });
}
When I call fromMainApi
to IoApi
, there are not set the MainApi
url in my IoApi
.
How to do MainApi
request url set in my audience?
I want to set my MainApi
request url in my IoApi
audience.
本文标签: cHow to get other API request url in my API and set audienceStack Overflow
版权声明:本文标题:c# - How to get other API request url in my API and set audience? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741207857a2358509.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论