我在谷歌控制台中创建了一个 clientid 和 clientcredentials。当我用
grant_type=client_credentials
请求令牌时。我得到了401 unauthrorized
。
{
"error": "invalid_client",
"error_description": "Unauthorized",
"error_uri": ""
}
该错误表示您未通过身份验证。据我所知,client_credentials 也不是 grant_type 的有效值。
我所知道的只有
看起来
grant_type=client_credentials
是 Oauth2 的 RFC 的一部分,但我在 Google 身份验证服务器中没有看到它的实现。
Anwser:据我所知,不可以,您不能将 grant_type=client_credentials 与 Google API 一起使用。
更新:刚刚收到谷歌的回信。我是对的,他们不支持这种 grant_type。
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 不是其中之一。
当我们访问端点时
https://accounts.google.com/.well-known/openid-configuration
它提供了有关端点的信息,支持的response_types,scopes,grant_types在google的Oauth中。
目前google支持以上grant_types.....