我使用什么 URL 将用户发送到 google oauth2 同意屏幕

What URL do I use to send users to google oauth2 consent screen

我正在尝试编写一个简单的应用程序来使用用户身份验证令牌和 html 请求访问 google 的 api,但是我正在努力寻找 URL 我也将用户发送给他们 select 个人资料并登录。

URL I send users too in order for them to select a profile and sign in.

问题是您混淆了授权和身份验证。 Oauth2 用户可以授权您访问他们的数据,这与登录您的 OpenID 连接的应用程序无关。

然而,您可能正在寻找的是 oauth2 同意屏幕。这是用户同意您的应用程序访问其数据的屏幕。

https://accounts.google.com/o/oauth2/auth?client_id={clientid}&redirect_uri={redirectURI}&scope={scope}&response_type=code

请记住,这只是第一步,如果他们同意,您将获得一个授权码,然后您的应用程序必须将授权码交换为访问令牌,您可以使用该访问令牌访问 api。

您可能会发现此视频有助于理解填充 Oauth2 舞蹈。 Understanding Google OAuth 2.0 with curl

如果您想登录用户并查看他们的个人资料,这样会更好

[GoogleScopedAuthorize(PeopleServiceService.ScopeConstants.UserinfoProfile)]
 public async Task UserProfile([FromServices] IGoogleAuthProvider auth)
        {
            var cred = await auth.GetCredentialAsync();
            var service = new PeopleServiceService(new BaseClientService.Initializer()
                {
                    HttpClientInitializer = cred
                });
            

            var request = service.People.Get("people/me");
            request.PersonFields = "names";
            var person = await request.ExecuteAsync();

            return View(person);
        }

可以在此处找到完整的教程和配套视频 Asp .net core 3 and Google login