【发布时间】:2016-12-27 22:18:09
【问题描述】:
我正在使用 ASP.NET Core 为 Android 客户端提供 API。 Android 以 Google 帐户的身份登录,并将 JWT(ID 令牌)作为不记名令牌传递给 API。我的应用程序正在运行,它确实通过了身份验证检查,但我认为它没有验证令牌签名。
根据 Google 的文档,我可以调用此 url 来执行此操作:https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=XYZ123,但我在服务器端找不到合适的挂钩来执行此操作。同样根据谷歌文档,我可以以某种方式使用客户端访问 API 来完成它,而无需每次都调用服务器。
我的配置代码:
app.UseJwtBearerAuthentication( new JwtBearerOptions()
{
Authority = "https://accounts.google.com",
Audience = "hiddenfromyou.apps.googleusercontent.com",
TokenValidationParameters = new TokenValidationParameters()
{
ValidateAudience = true,
ValidIssuer = "accounts.google.com"
},
RequireHttpsMetadata = false,
AutomaticAuthenticate = true,
AutomaticChallenge = false,
});
如何获取 JWTBearer 中间件来验证签名?我快要放弃使用 MS 中间件并自己动手了。
【问题讨论】:
标签: c# google-api asp.net-core google-oauth jwt