首页 > 解决方案 > Django登录与休息框架

问题描述

在使用其余框架和前端原生客户端时,我需要使用原生客户端登录并直接登录 API 端点以进行开发和测试。

本地客户端登录需要令牌认证,直接 API 登录需要会话认证。但是,如果我将两者都放在 settings.py 作为默认值,我会从本机客户端收到 csrf 错误,并且如果我删除会话身份验证,我将无法直接登录 API(我仍然可以登录到管理控制台)。

我的设置.py

REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
    'rest_framework.authentication.TokenAuthentication',
    'rest_framework.authentication.SessionAuthentication'
],
'DEFAULT_PERMISSION_CLASSES': (
  'rest_framework.permissions.AllowAny',
)

}

可以做些什么来登录开发和测试?有什么帮助吗?

标签: djangodjango-rest-framework

解决方案


@Daniel这是我当前的设置,检查是否对您有帮助-

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.TokenAuthentication',
        # 'rest_framework.authentication.BasicAuthentication',
        'rest_framework.authentication.SessionAuthentication',
    ),
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.AllowAny',
    )
}
AUTHENTICATION_BACKENDS = (
    # Needed to login by username in Django admin, regardless of `allauth`
    "django.contrib.auth.backends.ModelBackend",
    # `allauth` specific authentication methods, such as login by e-mail
    "allauth.account.auth_backends.AuthenticationBackend"
)

推荐阅读