基于json web令牌的django认证

django-jwt-auth的Python项目详细描述


#Django JWT认证

[![生成状态图像]][travis]
[![PYPI版本][PYPI]

概述
此包提供了对django的[JSON Web令牌身份验证](http://tools.ietf.org/html/draft-ietf-oauth-json-web-token)支持。

基于[django rest framework jwt auth](https://github.com/getblimp/django-rest-framework-jwt)包。

安装

密码。

`` python
url patterns=patterns(
'',



url(r'^api token auth/','jwt_u auth.views.get戋jwt戋u token'),
```

如果在终端中创建了用户,则可以通过在终端中执行以下操作轻松测试端点是否工作用户名**admin**和密码**abc123**。

``bash
$curl-x post-h"内容类型:application/json"-d{"用户名":"admin","密码":"abc123"}'http://localhost:8000/api token auth/
````

不记名<;您的"代币">;`header.

``bash
$curl-h"授权:不记名<;您的"代币">;"http://localhost:8000/protected url/
```

以下是所有可用的默认值。

`` python
jwt_encode_handler='jwt_auth.utils.jwt_encode_handler'
jwt_decode_handler='jwt_auth.utils.jwt_decode_handler',
jwt-payload\u handler='jwt-auth.utils.jwt-payload\u handler='jwt-auth.utils.jwt/u-payload\u用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id用户id你的回旋余地=0
jwt_expiration_delta=datetime.timedelta(seconds=300)
jwt_allow_refresh=false
jwt_refresh_expiration_delta=datetime.timedelta(days=7)
jwt_auth_header_prefix='bearer'
```
此包使用json web令牌python实现,[pyjwt](https://github.com/progrium/pyjwt)并允许修改它的一些可用选项。

请确保这是安全的,而不是共享的或公共的。

default是项目的"settings.secret_key"。


\jwt_u algorithm


可能的值:

>;*hs256-使用sha-256哈希算法的hmac(默认值)
>;*hs384-使用sha-384哈希算法的hmac
>;*hs512-使用SHA-512哈希算法的HMAC
>;*rs256-rsassa-pkcs1-v1_5签名算法使用SHA-256哈希算法的签名算法
>;*rs384-rsassa-pkcs1-v1_5签名算法使用SHA-384哈希算法的签名算法
>;*rs512-rsassa-pkcs1-v1_5签名算法,使用sha-512散列算法


注意:
>;对于rsassa-pkcs1-v1_5算法,jwt.encode中的"secret"参数应该是用crypto.publickey.rsa.importkey导入的专用rsa密钥。同样,jwt.decode中的"secret"参数应该是用同一方法导入的公共rsa密钥。


默认值是"hs256"。

通过将"jwt_u verify"设置为"false",仍然可以获取有效负载。

默认值为"true"。


jwt_u verify戋u expiration

通过将"jwt戋u verify戋expiration"设置为"false",可以关闭过期时间验证。

默认值为"true"。


###jwt_leeway

>;这允许您验证过期时间,它是过去的,但不会太远。例如,如果您有一个jwt负载,其过期时间设置为创建后30秒,但是您知道有时你会在30秒后处理它,你可以设置10秒的回旋余地以获得一定的裕度。

这将添加到"datetime.utcnow()"中以设置过期时间。

从"rest_framework_jwt.views.get_jwt_token"发出的令牌将具有"orig_iat"字段。默认值为"false"

\jwt\u refresh\u expiration\u delta
令牌刷新限制是"datetime.timedelta"实例。这是原始令牌之后可以刷新未来令牌的时间。

以不同于默认负载处理程序的方式存储"user\u id",实现此函数以从负载中获取"用户ID"。


\jwt\u auth\u header\u prefix
您可以修改需要与令牌一起发送的授权头值前缀。


默认值为"承载"。



[生成状态图像]:https://secure.travis-ci.org/jpadilla/django-jwt-auth.svg?branch=master
[travis]:http://travis-ci.org/jpadilla/django-jwt-auth?branch=master
[pypi version]:https://img.shields.io/pypi/v/django jwt auth.svg
[pypi]:https://pypi.python.org/pypi/django jwt auth

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

推荐PyPI第三方库


热门话题
java如何强制用户在允许访问活动之前处理对话框?我的许可证代码怎么了?   java ArraysList作为JSON   mysql如何在java中创建包含多个可选where子句的搜索语句?   java如何让Apache Camel在“直接”路径的末尾删除文件?   使用socket在两个Androids之间进行java实时数据传输。IO(websocket)和4G   如何在java中实现两个CORBA服务器之间的通信   会话树xml表示为java对象   java Skype4Java编号swtwin323325   java RecyclerView getAdapterPosition()不工作:第一次单击返回正确位置,第二次单击返回1   java在$TOMCAT/conf/context上为JNDI设置资源。xml   java为什么第二个矩形冲突在第一个矩形冲突时不起作用?   JScrollPane上的java JTextArea未出现在JPanel上   java如何将实现的PriorityQueue打印为字符串?   jpa使用Jersey更新用户角色RESTJava(JAXRS)