小编Mor*_*eza的帖子

dj_rest_auth (jwt) 登录时刷新令牌为空 - Django Rest Framework

我在使用 dj_rest_auth jwt 包时遇到问题。当我注册一个新帐户时,它会为我提供访问令牌和刷新令牌作为响应,但是当我尝试使用凭据登录时,我得到的只是访问令牌,而刷新令牌完全是空的!我按照文档和我遵循的教程中的描述配置了代码。对这个问题有什么想法吗?请告诉我。

更新:我刚刚发现刷新令牌已在响应标头中正确设置,但我无法弄清楚为什么它不在响应正文中并且显示为空?!

设置.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',

    'rest_framework',
    'rest_framework.authtoken',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'dj_rest_auth',
    'dj_rest_auth.registration',

    'accounts.apps.AccountsConfig',
]

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': [
        'accounts.permissions.IsStaffOrReadOnly',
    ],
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'dj_rest_auth.jwt_auth.JWTCookieAuthentication',
    ],
}

SITE_ID = 1

REST_AUTH = {
    'USE_JWT': True,
    'JWT_AUTH_COOKIE': 'access',
    'JWT_AUTH_REFRESH_COOKIE': 'refresh',
}
Run Code Online (Sandbox Code Playgroud)

回复:

{
    "access_token": "eyJhbGciOiJ.....",
    "refresh_token": "",
    "user": {
        "pk": 2,
        "username": "test_user_0",
        "email": "test0@mysite.co",
        "first_name": "",
        "last_name": ""
    }
}
Run Code Online (Sandbox Code Playgroud)

django jwt django-rest-framework django-allauth dj-rest-auth

5
推荐指数
1
解决办法
1756
查看次数