2017-02-28 118 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), 
} 

我们了解每一种设置,请参阅文档。即使如此,如果您需要澄清任何问题,我会很乐意解释。