我可以对 google api 使用 grant_type=client_credentials 吗?

问题描述 投票:0回答:3

我在谷歌控制台中创建了一个 clientid 和 clientcredentials。当我用

grant_type=client_credentials
请求令牌时。我得到了
401 unauthrorized

{
  "error": "invalid_client",
  "error_description": "Unauthorized",
  "error_uri": ""
}
oauth google-oauth
3个回答
12
投票

该错误表示您未通过身份验证。据我所知,client_credentials 也不是 grant_type 的有效值。

我所知道的只有

  • 授权码
  • 刷新令牌

看起来

grant_type=client_credentials
是 Oauth2 的 RFC 的一部分,但我在 Google 身份验证服务器中没有看到它的实现。

Anwser:据我所知,不可以,您不能将 grant_type=client_credentials 与 Google API 一起使用。

更新:刚刚收到谷歌的回信。我是对的,他们不支持这种 grant_type。


7
投票

Google OAuth 2.0 不支持授权类型:客户端凭据 (

client_credentials
)。 Google 仅支持两种类型的 OAuth 授权:

  • 授权码
  • 刷新令牌

授予类型客户端凭证用于获取

Client ID
指定的帐户的访问令牌,不用于用户身份验证。 Google 不支持此类访问。

OP 还使用基本授权:

base64(Client_ID:Client_Secret)
并且 Google 不支持此表单。

有一些 OAuth 服务器支持这些附加形式,例如 IBM 的 App ID。 Google OAuth 2.0 不是其中之一。


0
投票

当我们访问端点时

https://accounts.google.com/.well-known/openid-configuration

它提供了有关端点的信息,支持的response_types,scopes,grant_types在google的Oauth中。

在此输入图片描述

目前google支持以上grant_types.....

© www.soinside.com 2019 - 2024. All rights reserved.