我正在使用Swagger OpenAPI 3.0.2版本描述我的API。
我从Swagger gihub存储库中构建了swagger-codegen 3.0.5快照。
我想要一个Java客户机,该客户机将为client_credentials的授予类型获取OAUTH2令牌。我想要客户端凭据,因为这是一台与另一台计算机通信的机器,我不是在要求用户提供凭据。我的规格文件中包含以下内容:
securitySchemes:
oAuth2ClientCredentials:
type: oauth2
description: Standard OAUTH2
flows:
clientCredentials:
tokenUrl: my_token_url
scopes: {}
security:
- oAuth2ClientCredentials: []
我想要一个带有客户机ID和客户机机密的基本身份验证标头,其中标准的base64编码具有grant_type作为URL编码形式。这是非常标准的OAuth2身份验证。
我似乎有时会获得OAuth身份验证的代码,有时却不会。除了我手动证明访问令牌之外,python库对OAuth而言一无所有。除非我要求将其改造为基础库,否则Java库没有它,但它会生成Bearer Authentication标头,而不是Basic Authentication Header。 Retrofit2甚至无法正常工作,车把模板中有一个非法字符,使车把倒钩。
那么当人们拥有客户ID和客户机密时,人们将如何获取他们的访问令牌?您是否编写代码以自己获取访问令牌?还是有某种神奇的方法来获取swagger-codegen-cli为我生成代码,具体取决于我使用的库?
如果有人设法通过swagger-codegen-cli生成使用OpenAPI 3.0规范的OAuth 2客户端凭据所需的一切,请告诉我。