我正在.net核心中使用jwt中间件来验证令牌。我已经这样配置了。
using (var publicRsa = RSA.Create())
{
var array = Convert.FromBase64String("publickey");
var rsaKeyParameters = (RsaKeyParameters) PublicKeyFactory.CreateKey(array);
var rsaParameters = new RSAParameters
{
Modulus = rsaKeyParameters.Modulus.ToByteArrayUnsigned(),
Exponent = rsaKeyParameters.Exponent.ToByteArrayUnsigned()
};
publicRsa.ImportParameters(rsaParameters);
_issuerSigningKey = new RsaSecurityKey(publicRsa);
}
var jwtParams = new TokenValidationParameters
{
IssuerSigningKey = _issuerSigningKey,
ValidAudience = "audience",
ValidIssuer = "https://sxxxx",
RequireExpirationTime = true,
ValidateLifetime = true,
SaveSigninToken = true,
};
services.AddAuthentication(options =>
{
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.RequireHttpsMetadata = false;
options.TokenValidationParameters = jwtParams;
options.Audience = "audience";
});
我正在localhost上测试,它可以完美运行。
我已经使用aws api网关和lambda部署了api。当我在AWS中部署该应用程序并尝试调用终结点计算机时,尽管提供了正确的公共密钥,但仍遭到了未经授权。
内容长度:0连接:保持活动状态
x-amzn-Remapped-WWW-Authenticate:承载错误=“ invalid_token”, error_description =“未找到签名密钥” X-Cache:错误 来自cloudfront通过:1.1 xxxx.cloudfront.net(CloudFront)
等
我是否需要在配置中指定其他内容或使用api网关指定其他内容?
我想念什么?请帮忙..