2017-02-28 72 views
4

我將創建一個必須是遠程用戶的Django REST項目:外部服務器公開身份驗證API並使用JWT。它暴露我也是一個不記名的標記,以允許我使用apis。 我的Django將不得不公開api來驗證客戶端(移動應用程序)。 我在腦海中沒有太多清楚的如何處理身份驗證流量:我是否必須構建自定義身份驗證?使用遠程jwt認證的Django REST

謝謝!

回答

0

我可能可以幫助您在DRF項目中實施智威湯遜。我希望這會給你一些關於你的問題的REST的清晰。

在項目設置文件,包括在INSTALLED_APPS JWT

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'rest_framework', 
    'rest_framework.authtoken', 
    'rest_framework_swagger', 
    'rest_framework_jwt', 
    'django_filters', 
    'corsheaders', 
    'sslserver', 
] 

然後使該條目 -

REST_FRAMEWORK = { 
    'DEFAULT_PAGINATION_CLASS': 'core.pagination.StandardPageNumberPagination', 
    'DEFAULT_AUTHENTICATION_CLASSES': (
     'rest_framework_jwt.authentication.JSONWebTokenAuthentication', 
     'rest_framework.authentication.SessionAuthentication', 
    ), 
} 

然後

JWT_AUTH = { 
    'JWT_SECRET_KEY': SECRET_KEY, 
    'JWT_GET_USER_SECRET_KEY': None, 
    'JWT_PUBLIC_KEY': None, 
    'JWT_PRIVATE_KEY': None, 
    'JWT_ALGORITHM': 'HS256', 
    'JWT_VERIFY': True, 
    'JWT_VERIFY_EXPIRATION': True, 
    'JWT_LEEWAY': 0, 
    'JWT_EXPIRATION_DELTA': datetime.timedelta(seconds=300), 
    'JWT_ALLOW_REFRESH': False, 
    'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=7), 
} 

我們瞭解每一種設置,請參閱文檔。即使如此,如果您需要澄清任何問題,我會很樂意解釋。