[英]Integrate python-social-auth to drf-spectacular (Swagger)
我有一个基于python-social-auth
OAuth2 的 Django (DRF) 项目和基于drf-spectacular
的 Swagger。 我需要将这两个库集成在一起,以便 Swagger 允许 OAuth2 授权,例如 Google OAuth2。 我在 设置中找到了drf-spectacular
的 OAuth2 配置:
SPECTACULAR_SETTINGS = {
...
'SWAGGER_UI_OAUTH2_CONFIG': {
...
# Oauth2 related settings. used for example by django-oauth2-toolkit.
# https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#oauth-flows-object
'OAUTH2_FLOWS': [],
'OAUTH2_AUTHORIZATION_URL': None,
'OAUTH2_TOKEN_URL': None,
'OAUTH2_REFRESH_URL': None,
'OAUTH2_SCOPES': None,
},
...
}
但我不确定它是否适合我。 我在我的配置版本中写了这个,但它似乎没有效果:
'SWAGGER_UI_OAUTH2_CONFIG': {
'OAUTH2_AUTHORIZATION_URL': 'https://accounts.google.com/o/oauth2/auth',
'OAUTH2_TOKEN_URL': 'https://accounts.google.com/o/oauth2/token',
'OAUTH2_SCOPES': ['openid', 'email', 'profile'],
}
Swagger 仍然没有 OAuth2。 知道如何管理它吗?
我认为您将范围与流程混合在一起,而且这些键应该属于 SPECTACULAR_SETTINGS 字典,而不是 SWAGGER_UI_OAUTH2_CONFIG:
SPECTACULAR_SETTINGS = {
'OAUTH2_FLOWS': ['password'],
'OAUTH2_SCOPES': {
'read': 'Read scope',
'write': 'Write scope',
}
}
我无法解释为什么 SPECTACULAR_SETTINGS 和 SWAGGER_UI_OAUTH2_CONFIG 中有一些重复的数据,事实上第二个似乎没有效果
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.