Okta 身份验证 Django 重定向

时间:2021-06-06 16:39:21

标签: django authentication okta

我正在使用 Okta 实现 OpenID,但在重定向方面遇到了一些问题。

基本上我可以在 Okta 管理页面看到授权成功:okta log

但是登录不会重定向到指定的 url。 以下是 okta admin 中应用程序的设置:Okta settings

带有小部件的登录页面:

div id="okta-login-container"></div>

    <script type="text/javascript">
      var oktaSignIn = new OktaSignIn({
          baseUrl: '{{config.url}}',
          clientId: '{{config.clientId}}',
          redirectUri: '{{config.redirectUri}}',
          authParams: {
              issuer: '{{config.issuer}}',
              responseType: ['code'],
              scopes: "{{config.scope}}".split(" "),
              pkce: false,
          },
      });
      oktaSignIn.renderEl(
          {el: '#okta-login-container'},
          function (res) {
              console.log(res);
          })
    </script>

我在应用中的 okta 设置:

"REDIRECT_URI": "http://localhost:8000/callback",
    "LOGIN_REDIRECT_URL": "http://localhost:8000/profile", # default
    "CACHE_PREFIX": "okta", # default
    "CACHE_ALIAS": "default", # default
    "PUBLIC_NAMED_URLS": (), # default
    "PUBLIC_URLS": (), # default
    "USE_USERNAME": False, # default

项目网址:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include(("okta_oauth2.urls", "okta_oauth2"), namespace="okta_oauth2")),
    path('', include("django.contrib.auth.urls")),
    path('', include('request.urls')),

应用网址:

urlpatterns = [
    path('', views.login, name='login'),
    path('request_form/', views.request_form, name='request_form'),
    path('profile/', views.profile, name='profile'),

意见:

def login(request):
    return render(request,'okta_oauth2/login.html', {})

我的文件夹结构:folder structure

这是我登录时在终端中得到的:

[06/Jun/2021 17:35:06] "GET /login/ HTTP/1.1" 200 2012
[06/Jun/2021 17:35:09] "GET /callback?code=aL7yGY48sTPR7n5fKtciUlJfIwRIsyhuB2ADFD1ruDA&state=oa4dsoLnayMWPZ02N20DxNABenXif8QASQXy4vvdoep9MbvaLFh5gIbaRPzdQdeU HTTP/1.1" 302 0
[06/Jun/2021 17:35:09] "GET /login/ HTTP/1.1" 200 2012

我在要重定向的页面中有这个:

{% if user.is_authenticated %}

有人能看到我错过了什么吗?或者我做错了什么?您需要更多信息吗?

谢谢

0 个答案:

没有答案