Python Django和mozilla_Django_oidc-如何注销会话?

Python Django和mozilla_Django_oidc-如何注销会话?,python,openid,openid-connect,Python,Openid,Openid Connect,我已经使用mozilla_Django_oidc包成功地将Django测试应用程序与Okta IAM服务集成。现在我可以使用Okta登录,这很酷 但现在我想再次注销会话-这似乎是我无法做到的mozilla_django_oidc提供了三个基本URL: name=oidc\u身份验证\u回调 name=oidc\u authentication\u init(一个) name=oidc\u注销 天真地,我只是将该代码添加到我的应用程序中,并期望能够正常注销: {% if user.is_aut

我已经使用
mozilla_Django_oidc
包成功地将Django测试应用程序与Okta IAM服务集成。现在我可以使用Okta登录,这很酷

但现在我想再次注销会话-这似乎是我无法做到的
mozilla_django_oidc提供了三个基本URL:

  • name=oidc\u身份验证\u回调
  • name=oidc\u authentication\u init
    (一个)
  • name=oidc\u注销
天真地,我只是将该代码添加到我的应用程序中,并期望能够正常注销:

{% if user.is_authenticated %}
  <p>{{ user.email }} - <a href="{% url 'oidc_logout' %}">Logout</a></p>
{% else %}
  # etc.
{% end %}
{%if user.u经过身份验证%}
{{user.email}}-

{%else%} #等等。 {%end%}
问题是:
注销
端点只接受POST请求


现在,我如何才能注销会话?

我用这个技巧解决了这个问题

文件设置.py

OIDC_OP_LOGOUT_ENDPOINT=“https://{…}/auth/realms/{…}/protocol/openid connect/LOGOUT”
OIDC\u OP\u LOGOUT\u URL\u METHOD=“main.openid.LOGOUT”
我用logout方法在主文件夹中创建了一个文件openid

main.openid.py

logout\u endpoint=import\u from\u设置(“OIDC\u OP\u logout\u endpoint”,“”)
返回注销\端点+“?重定向\ uri=“+请求。生成\绝对\ uri(“/”)
我创建了一个从OIDCLogoutView继承的视图LogoutView

view.py

类登录视图(OIDCLogoutView):
def get(自我,请求):
返回self.post(请求)
最后

url.py

path('logout',views.LogoutView.as_view(),name='logout')
所以,当我在http链接中使用logout方法(GET方法)时,它将重定向到OIDC_OP_logout_端点,该端点将重定向到当前站点的主页