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如何在不扩展小程序的情况下使用小程序方法?   Java/包含点的排序数组   java如何在EJB项目中创建会话?   java JavaFX我切换了场景,但我不能再回来了   环境变量为java设置类路径时%classpath%的含义是什么   java如何使用Serenity BDD管理浏览器选项卡?   java如何创建一个。gwt中的war文件在eclipse中使用maven?   java使用java程序更新HTML文件   Java、SQLite、向数据库插入数据   java无法在RPi上安装JDK 16   在不进行反射的情况下调用动态java方法   如何在Ubuntu上安装Eclipse和Java SDK?   JavaSSHMySQL连接   在内存和性能方面,用Java每秒打印格式化日期+时间的最有效方法是什么?   java如何匹配映射返回类型的键和值?   java JUnit测试挂起在clientSocket上。接受()?   jbossweb中的java系统属性引用。服务器启动时未解析xml   java如何在set操作中使用arrayUnion   java 安卓。看法充气异常:二进制XML文件行#22