firebase - 如何在 Dotnet Core MVC 应用程序中验证 Firebase 生成的 JWT
问题描述
我在 dotnet 核心 MVC 应用程序中从 Firebase Admin SDK 生成 JWT,如下所示:
FirebaseApp.Create();
...
await FirebaseAuth.DefaultInstance.CreateCustomTokenAsync(user.Id, additionalClaims);
但是,我将 JWT 传递回 dotnet core MVC 应用程序,我无法对其进行验证:
var key = Encoding.ASCII.GetBytes("-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----\n");
var tokenHandler = new JwtSecurityTokenHandler();
tokenHandler.ValidateToken(token, new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(key),
ValidateIssuer = false,
ValidateAudience = false,
}, out SecurityToken validatedToken);
我得到的错误是:
Microsoft.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException : IDX10501: Signature validation failed. Unable to match key:
kid: 'System.String'.
Exceptions caught:'System.Text.StringBuilder'.
token: 'System.IdentityModel.Tokens.Jwt.JwtSecurityToken'.
我确定我一定是错误地指定了签名密钥,但我无法解决。
解决方案
推荐阅读
- c# - 在 Java Android 项目中使用 C# Dll
- r - 我在 R 中安装软件包有什么问题?
- r - 如何在 ggplot 中设置图表样式,如下图所示?
- cassandra - Cassandra 3.x 版本如何将连接分配给使用相同用户 ID 与相同键空间连接的不同微服务
- maven - 如何在一个管道中配置 Maven
- jwt - Azure AD jwks uri 配置
- microsoft-graph-api - 如何以编程方式将 microsfot 机器人添加到团队组?
- jquery - jQuery 预加载器不会停止并且不会转换到主页
- python - 如何在python中永久存储树结构
- python - Arduino和Python之间的通信