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中的一个设置。如果两者都已设置,则用户模型将 优先考虑。

  1. 将其作为属性放到用户模型中

    fromdatetimeimporttimedeltafromdjango.contrib.auth.modelsimportUserclassMyUserModel(User):token_validity_duration=timedelta(days=60)
  2. 将其放入您的设置中.py

    fromdatetimeimporttimedeltaTIMED_AUTH_TOKEN={'DEFAULT_VALIDITY_DURATION':timedelta(days=45)}

学分

感谢来自jh.gg的jake启动代码(模型,验证后端)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用Java学习Eclipse可视化编辑器Swing   eclipse如何找到运行Java程序所需的时间?   JAVA用于在Tomcat 8上运行Jena API的lang.UnsupportedClassVersionError   java在Main中调用字符串方法   javascript“子进程”。exec无法运行Java函数   java如何使用Gmail API获取电子邮件正文内容   java为什么客户端看不到服务器发送的第一条消息?   java无法在安卓 WebView中滚动到顶部   从服务器运行web服务时,java代码中的日期为空   从子任务返回后执行后台任务时发生java错误   java无法一致地处理弹出窗口   java(Android)通过蓝牙向µ控制器发送字节   java无法在emulator中启动AVD?安卓工作室   Android Java应用程序正在冻结,没有返回错误消息   java如何使用TestNg记录测试历史?