上下文:我需要使用Django配置OIDC,以允许用户访问我的应用程序。
问题:我正在使用一个名为mozilla-django-oidc的库,它很简单,但是当我测试配置时,它总是返回以下错误: 400 - Invalid redirect_uri
原因:正如我在Postman中测试的那样,发生此错误是因为回调URL错误。当我更深入地搜索mozilla-django-oidc时,我发现它为回调(/ oidc / callback /)设置了标准URL路径,这不是我们需要访问的OIDC所允许的URL。
关键问题#1 :如何修改mozilla-django-oidc代码,以使标准回调URL路径成为我所需要的?
关键问题2 :我是否可以在代码中进行这些更改,而不是使用mozilla-django-oidc?
以下是我的Django代码的一些设置:
我的Django-views.py
# Mozila OIDC configuration settings
OIDC_OP_AUTHORIZATION_ENDPOINT = "https://XXXXXXXXXXXXXXXXXXXXX"
OIDC_OP_TOKEN_ENDPOINT = "https://XXXXXXXXXXXXXXXXXXXXX"
OIDC_OP_USER_ENDPOINT = "https://XXXXXXXXXXXXXXXXXXXXX"
OIDC_RP_CLIENT_ID = "XXXXXXXXXXXXXXXXXXXXXXX"
OIDC_RP_CLIENT_SECRET = "XXXXXXXXXXXXXXXXXXXXXXX"
LOGIN_REDIRECT_URL = "https://myurl.com"
我的Django-settings.py
# Add 'mozilla_django_oidc' to INSTALLED_APPS
INSTALLED_APPS = (
# ...
'django.contrib.auth','mozilla_django_oidc',# Load after auth
# ...
)
# Add 'mozilla_django_oidc' authentication backend
AUTHENTICATION_BACKENDS = (
'mozilla_django_oidc.auth.OIDCAuthenticationBackend',# ...
)
我的Django-urls.py
urlpatterns = patterns(
# ...
url(r'^oidc/',include('mozilla_django_oidc.urls')),# ...
)
mozilla-django-oidc-urls.py
urlpatterns = [
url(r'^callback/$',OIDCCallbackClass.as_view(),name='oidc_authentication_callback'),url(r'^authenticate/$',OIDCAuthenticateclass.as_view(),name='oidc_authentication_init'),url(r'^logout/$',views.OIDCLogoutView.as_view(),name='oidc_logout'),]
mozilla-django-oidc库的其他部分可以在https://github.com/mozilla/mozilla-django-oidc/tree/master/mozilla_django_oidc
中找到