djangorestframework的身份验证令牌,具有过期日期。
djangorestframework-timed-auth-token的Python项目详细描述
django rest框架的新身份验证后端,它使用 有效期每次用户登录时都会创建一个新令牌。这个 每次使用令牌时都会刷新令牌到期日期。它支持 自定义用户模型
如何使用
添加到已安装的应用程序中
INSTALLED_APPS=(...'timed_auth_token',)
将身份验证类添加到默认身份验证类
REST_FRAMEWORK={'DEFAULT_AUTHENTICATION_CLASSES':('rest_framework.authentication.BasicAuthentication','rest_framework.authentication.SessionAuthentication','timed_auth_token.authentication.TimedAuthTokenAuthentication',)}
这个应用程序在/login上有一个登录url。终结点需要两个参数: 用户名和密码。
url_patterns=[...# Can login by using /auth/loginurl(r'^auth/',include('timed_auth_token.urls',namespace='auth')),]
成功登录后,响应包含一个密钥:令牌。
{'token': 'lkjalsdjf8asdkjfal;kdfa8s;dlna;sdf'}
要使用此令牌进行身份验证,它必须包含在http头中:
Authorization: Token YOURTOKEN
配置
唯一可用的配置选项是令牌的持续时间。它 默认为30天。可以在用户模型上将其设置为属性 或者作为settings.py中的一个设置。如果两者都已设置,则用户模型将 优先考虑。
将其作为属性放到用户模型中
fromdatetimeimporttimedeltafromdjango.contrib.auth.modelsimportUserclassMyUserModel(User):token_validity_duration=timedelta(days=60)
将其放入您的设置中.py
fromdatetimeimporttimedeltaTIMED_AUTH_TOKEN={'DEFAULT_VALIDITY_DURATION':timedelta(days=45)}
学分
感谢来自jh.gg的jake启动代码(模型,验证后端)。