我使用什么 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
我正在尝试编写一个简单的应用程序来使用用户身份验证令牌和 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