.NET的Google OAuth2客户端库是否支持access_token或refresh_token?

我们必须完成的工作:

  • 用户打开一个用Google登录名登录的网页
  • access_token和refresh_token发送到我们的后端服务器
  • 后端服务器必须读取存储在Google驱动器中的xlsx文件(后端服务器向Google Sheets API v4发出请求)

我将此插件https://www.npmjs.com/package/angularx-social-login用于Web应用程序,使用 角度8。

查看.NET的Google客户端api库-https://developers.google.com/api-client-library/dotnet/guide/aaa_oauth似乎对设置access_token或refresh_token没有任何支持。只有client_id和client_secret。

然后我的另一种方法是使用REST API,它可以工作:

static void Test()
{
  string baseUrl = "https://www.googleapis.com/drive/v3/files";
  string token = "ya29.ImC1B_sds9zLKAlruaMvkWqcw6vA_0oXRk4HOjLP4Du3S5TzBCg";             
  httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer",token);
  string response = client.GetStringAsync(baseUrl + "/?q=mimeType='application/vnd.google-apps.spreadsheet'").Result;
}

有什么方法可以使用Google Client .NET库刷新access_token还是必须使用REST API?

kchuan 回答:.NET的Google OAuth2客户端库是否支持access_token或refresh_token?

您的后端应如上所述将访问令牌转发到Google Rest API-后端在调用Google API时无需使用客户端ID和密码,因为身份验证已经完成。

this page中介绍了刷新Google访问令牌的方法-如果您了解HTTP消息,则可以很轻松地对其进行编码。

通常该过程如下:

  • 客户端触发对Google API的请求
  • 客户端在调用API后检查401响应
  • 通过刷新令牌并使用新的访问令牌重试API调用来处理401
本文链接:https://www.f2er.com/2905486.html

大家都在问