Невозможно получить доступ к панели администратора после настройки django-oauth-toolkit - PullRequest
1 голос
/ 29 мая 2019

У меня был pet-api (тестирование api) без аутентификации.Я пытаюсь узнать, как реализовать oath2 для повышения безопасности моего приложения.

Я хотел бы получить доступ к моделям моего приложения через вызов запроса с помощью API, а также через панель администратора Django.

Я следую этому руководству: https://medium.com/@halfspring/guide-to-an-oauth2-api-with-django-6ba66a31d6d

для настройки: django-oauth-toolkit

Учебник говорит, что я должен добавить этот код в настройки:

 AUTHENTICATION_BACKENDS = (
     'django.contrib.auth.backends.ModelBackend' # To keep the Browsable API
     'oauth2_provider.backends.OAuth2Backend',
 )

Но когда я запускаю сервер и пытаюсьдля доступа / admin я получаю:

ModuleNotFoundError at /admin/login/
No module named 'django.contrib.auth.backends.ModelBackendoauth2_provider'; 'django.contrib.auth.backends' is not a package

Если я прокомментирую:

# 'django.contrib.auth.backends.ModelBackendoauth2_provider'; 

Я могу получить доступ к интерфейсу для входа в систему, но говорит, что мой пользователь или пароль неверны (онине).

Комментируя обе строки, я могу без проблем получить доступ к панели администратора:

#AUTHENTICATION_BACKENDS = (
    # 'django.contrib.auth.backends.ModelBackend' # To keep the Browsable API
    # 'oauth2_provider.backends.OAuth2Backend',
#) 

Ответы [ 2 ]

1 голос
/ 26 июня 2019

В коде есть ошибка,

AUTHENTICATION_BACKENDS = (
 'django.contrib.auth.backends.ModelBackend' # To keep the Browsable API
 'oauth2_provider.backends.OAuth2Backend',
)

После 'django.contrib.auth.backends.ModelBackend' отсутствует запятая (,), поэтому обе строки считаются одной строкой, как вы можете видеть из ошибки.

Так что вам нужно было просто сделать

AUTHENTICATION_BACKENDS = (
 'django.contrib.auth.backends.ModelBackend', # To keep the Browsable API
 'oauth2_provider.backends.OAuth2Backend',
)

Теперь это будет работать ...

1 голос
/ 19 июня 2019

Все хорошо, у меня сейчас хорошо работает без него. Я также следую этому руководству. Просто продолжай http://127.0.0.1:8000/o/applications.

Кстати, я также комментирую ALLOWED_HOSTS = ['0.0.0.0'] и на users / views.py я изменил все http://0.0.0.0:8000 на http://127.0.0.1:8000.

А теперь я получаю это:

{
    "access_token": "C2qukd1zWz9aGSp652qbnpYjoT6ZRx",
    "expires_in": 36000,
    "token_type": "Bearer",
    "scope": "read write",
    "refresh_token": "UoI0r9J09F3kcXGO1q3KsYoGHQ9DBw"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...