Django удаленный пользователь аутентифицируется: значение слишком длинное для типа, изменяющегося по символам(30)
Я следовал этому руководству для интеграции Auth0 в мой существующий проект django rest. Я использую Postman для отправки необходимых данных, указанных на вкладке "Test" для моего Auth0 Custom API. Post работает, и я получаю в ответ маркер доступа. Но когда я пытаюсь использовать этот токен в заголовке авторизации для доступа к следующему представлению:
@api_view(['GET'])
def private(request):
return JsonResponse({'message': 'Hello from a private endpoint! You need to be authenticated to see this.'})
Я получаю следующую ошибку:
django.db.utils.DataError: значение слишком длинное для типа character varying(30)
>
Когда я прокручиваю весь журнал ошибок, кажется, что проблема возникает из-за следующего кода:
def jwt_get_username_from_payload_handler(payload):
username = payload.get('sub').replace('|', '.')
authenticate(remote_user=username)
return username
Django, похоже, не может поместить имя пользователя, полученное от Auth0, в таблицу RemoteUser при попытке аутентификации.
Если вам нужно посмотреть код, вы можете взглянуть на ссылку, поскольку я не изменил практически ничего, кроме эмитента и аудитории. У меня есть пользовательская модель User, так что если вы думаете, что она уместна в данном случае, я с радостью добавлю ее в код.