我试图将Swagger与Auth0一起使用。 我目前正在使用ApiFirstHand和Swagger-ui来测试我的api。
从这个example.yaml开始,我们可以看到getUserTodos
需要user, admin:org, admin:public_key
范围。
这是securityDefinitions:
securityDefinitions:
internalOAuth:
type: oauth2
scopes:
user: Grants read/write access to profile info only.
admin:org: Fully manage organization, teams, and memberships.
admin:public_key: Fully manage public keys.
flow: implicit
# we use a single API here to issue token (for SwaggerUI)
authorizationUrl: http://localhost:9000/example/token
# and to validate it later
x-token-validation-url: http://localhost:9000/example/token
我的问题是,如果我想使用Auth0而不是internal0Auth,那么我的用户在Auth0中的元数据和我的 securityDefinitions in example.yaml 应该是什么? ? 是否可以在其上使用Swagger-UI?
我试过
securityDefinitions:
auth0:
type: oauth2
scopes:
openid: Grants access to user_id.
read:task: Grants read access to task
flow: accessCode
authorizationUrl: https://test.eu.auth0.com/authorize
tokenUrl: https://test.eu.auth0.com/userinfo
x-token-validation-url: https://test.eu.auth0.com/userinfo
与
"user_metadata": {
"admin:org": true,
"admin:public_key": true,
"openid": true
}
答案 0 :(得分:0)
internalOAuth
或auth0
只是名称,然后引用到API调用的security
属性的定义中。从某种意义上说,您可以按照自己喜欢的方式命名,然后在API调用定义中使用正确的名称。
在你的情况下,它可能会是这样的:
security:
- auth0:
- openid
- admin:org
- admin:public_key
securityDefinitions:
auth0:
type: oauth2
scopes:
openid: Grants access to user_id
admin:org: Fully manage organization, teams, and memberships.
admin:public_key: Fully manage public keys.
flow: accessCode
authorizationUrl: https://test.eu.auth0.com/authorize
tokenUrl: https://test.eu.auth0.com/userinfo
x-token-validation-url: https://test.eu.auth0.com/userinfo
paths:
/some/url:
get:
description: Returns something
summary: cool API endpoint
security:
- auth0:
- admin:org
在不了解您的要求的情况下很难完全定义它,我认为看看swagger规范可能会有所帮助:
Swagger界面应该可以使用,您可以将security.api.yaml
移动到conf
文件夹并取消注释routes
文件中的第33行