在django rest框架中是否有正确的方法来注销按钮?

时间:2019-07-17 19:42:22

标签: django-rest-framework

当我访问注销链接时,即使我在设置上设置了LOGOUT_REDIRECT_URL,它也仅在我单击POST按钮时才有效注销,并且也不会重定向到正确的页面。是否有一种方法可以注销而无需手动单击POST按钮?

我尝试更改默认身份验证类和权限类的设置。还建立了一个新项目,在该项目上,它运行良好。我的User类是django.contrib.auth.models中的AbstractUser。

我还试图使不输入任何内容的表单向我的注销页面发出POST请求,它只是将我重定向到LOGOUT_REDIRECT_URL页面,而不会破坏用户会话。

我的设置:


LOGOUT_REDIRECT_URL = '/'
LOGIN_REDIRECT_URL = '/'
LOGIN_URL = 'http://127.0.0.1:8000/auth/login/'
LOGOUT_URL = 'http://127.0.0.1:8000/auth/logout/'

# Application definition

INSTALLED_APPS = [
    # apps templated
    'django_adminlte',
    'django_adminlte_theme',

    # usual apps
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django_cron',
    'django_extensions',
    'django_filters',

    # Libs
    'rest_framework',
    'rest_framework.authtoken',
    'rest_auth',
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'rest_auth.registration',
    'sass_processor',
    'corsheaders',


    # Custom apps
    'bankaccount.apps.BankaccountConfig',
    'blog.apps.BlogConfig',
    'bitcoin.apps.BitcoinConfig',
    'users.apps.UsersConfig',
    'wallets.apps.WalletsConfig',
]

...

REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS': 'arbitrage.pagination.SimplePagination',
    'PAGE_SIZE': 100,
    'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',),
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.TokenAuthentication',
        'rest_framework.authentication.SessionAuthentication',
    ),
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    ),
}

我的注销按钮:

<form action="{% block logout_url %}{% logout_url %}{% endblock %}" method="POST" enctype="multipart/form-data">
     <div class="pull-right">
         <a href="" class="btn btn-default btn-flat">Log out</a>
     </div>
</form>

如果给定用户登录,则预期结果应该是他单击屏幕顶部的注销按钮(此按钮将重定向到注销页面)时注销该用户

0 个答案:

没有答案