Files
AobaV2/AobaServer/Services/MetricsRpcService.cs
Amatsugu 7427bbb576
All checks were successful
Build and Push Image / build-and-push (push) Successful in 5m24s
refactor proto files + added metrics token
2025-07-06 01:28:52 -04:00

34 lines
914 B
C#

using Aoba.RPC;
using Aoba.RPC.Auth;
using Google.Protobuf.WellKnownTypes;
using Grpc.Core;
using Microsoft.AspNetCore.Authorization;
using Microsoft.IdentityModel.Tokens;
using System.IdentityModel.Tokens.Jwt;
namespace AobaServer.Services;
public class MetricsRpcService(AuthConfigService authConfig): Aoba.RPC.Metrics.MetricsRpc.MetricsRpcBase
{
[AllowAnonymous]
public override async Task<Jwt> GetToken(Empty request, ServerCallContext context)
{
var authInfo = await authConfig.GetAuthInfoAsync("aoba", "metrics");
var handler = new JwtSecurityTokenHandler();
var jwt = handler.CreateEncodedJwt(new SecurityTokenDescriptor
{
Audience = authInfo.Audience,
Issuer = authInfo.Issuer,
IssuedAt = DateTime.UtcNow,
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(authInfo.SecureKey), SecurityAlgorithms.HmacSha256)
});
return new Jwt { Token = jwt };
}
}