对id_token的Google验证会返回“invalid_value”

时间:2017-07-11 13:42:40

标签: security oauth-2.0 google-api openid identityserver4

我的理解是我应该能够发出这种请求

https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=<SOME_ID_TOKEN>

应该返回已解码的信息(类似于Google文档here中描述的信息。 但是,我得到Bad Request代表我知道的事实是有效的。

enter image description here

应用验证(.NET Core)令牌已在Google Dev控制台中注册,并按此配置

        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        loggerFactory.AddConsole(LogLevel.Debug);
        app.UseDeveloperExceptionPage();

        app.UseIdentityServer();

        app.UseGoogleAuthentication(new GoogleOptions
        {
            AuthenticationScheme = "Google",
            DisplayName = "Google",
            SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme,

            ClientId = "<MY_CLIENT_ID>",
            ClientSecret = "<MY_SECRET>"
        });

        app.UseStaticFiles();
        app.UseMvcWithDefaultRoute();
    }

如何使用Google令牌验证(用于ID令牌)?一定在这里遗漏了什么。

非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

您是否已使用Google API注册了自己的应用?如果是,您如何登录应用程序以及如何获得此令牌?

更新我只是配置客户端ID和客户端密码,其他所有内容都由谷歌中间件处理。

e.Cancel

并且为了在谷歌验证后处理回调我在我的帐户控制器中有这些功能用于任何外部登录。 ExternalLogin(),ExternalLoginConfirmation()。查看this示例!

所以我没有通过调用令牌端点来处理id令牌验证,但中间件正在处理它。你有什么特别的理由自己处理它吗?