我正在使用 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 %}
有人能看到我错过了什么吗?或者我做错了什么?您需要更多信息吗?
谢谢