繁体   English   中英

如何使用 ASP.NET Core 中的 AddOpenIdConnect() 从 Google 请求离线访问权限?

[英]How to request offline_access from Google using .AddOpenIdConnect() in ASP.NET Core?

我知道微软提供了一个谷歌特定的 OIDC package ( Microsoft.AspNetCore.Authentication.Google ),它在.AddGoogle()中有一个选项来指定可以设置为的AccessType offline

但这可以使用标准 ASP.NET Core OIDC package Microsoft.AspNetCore.Authentication.OpenIdConnect.AddOpenIdConnect()来完成吗?

使用 Microsoft 帐户,我们可以简单地请求offline_access scope,它可以完美运行。 但它不适用于 Google 并导致invalid_scope错误。

想通了。 Google 使用access_type参数进行离线访问请求,而不是 scope。 所以我们可以在OpenIdConnectOptions中处理OnRedirectToIdentityProvider事件来添加这个参数:

 options.Events.OnRedirectToIdentityProvider = context =>
 {
   context.ProtocolMessage.SetParameter("access_type", "offline");
   return Task.CompletedTask;
 };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM