设置 OAuth2 身份验证

Djuth 不是由 Django REST Framework 处理的,但是有几个 pip 模块可以实现 OAuth 客户端。REST Framework 文档建议使用以下模块之一:

Django OAuth 工具包

pip install django-oauth-toolkit

settings.py

INSTALLED_APPS = (
    ...
    'oauth2_provider',
)

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'oauth2_provider.ext.rest_framework.OAuth2Authentication',
    )
}

urls.py

urlpatterns = patterns(
    ...
    url(r'^o/', include('oauth2_provider.urls', namespace='oauth2_provider')),
)

Django REST 框架 OAuth

pip install djangorestframework-oauth django-oauth2-provider

settings.py

INSTALLED_APPS = (
    ...
    'provider',
    'provider.oauth2',
)

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.OAuth2Authentication',
    )
}

urls.py

urlpatterns = patterns(
    ...
    url(r'^oauth2/', include('provider.oauth2.urls', namespace='oauth2')),
)

管理员

转到管理面板并创建一个新的 Provider.Client,以获得 client_idclient_secret