我有 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/密钥)。