ASP.Net 标识提供者请求的信息过多



我有 asp.net indentity 工作正常。但是,当用户登录时,Google 会询问用户是否可以提供以下信息:

- 查看您的电子邮件地址
- 查看有关您帐户的基本信息

问题是我甚至不想要这些信息。我只是想要一种独特的方法来识别用户(它确实提供了)。我不希望用户认为我会在他们登录时向他们发送垃圾邮件。

在Startup.Auth中.cs我使用了一个非常普通的谷歌设置:

app.UseGoogleAuthentication();

编辑:解决方案

布洛克的回答让我找到了正确的解决方案。关键是将"openid"添加到范围中。

    var googleOAuth2AuthenticationOptions = new GoogleOAuth2AuthenticationOptions
        {
            ClientId = "XXXX",
            ClientSecret = "YYYY",
            CallbackPath = new PathString("/Account/LoginCallback/"),
        };
    googleOAuth2AuthenticationOptions.Scope.Add("openid"); //!Important
    app.UseGoogleAuthentication(googleOAuth2AuthenticationOptions);

在Katanav2中间件中,Google支持只有Open ID,并且对请求电子邮件进行了硬编码。

在v2.1中,他们现在支持OAuth2,这意味着GoogleAuthenticationOptions有一个scopes属性,允许您控制从Google请求的内容。但这意味着您需要像任何其他 OAuth2 提供程序一样设置客户端应用程序(因此您需要注册并获取客户端 ID/密钥)。

相关内容

  • 没有找到相关文章

最新更新