## django-request-sign
对django请求进行签名效验
### 安装
`pip install django-request-sign`
### 使用
将 `request_sign.middleware.RequestSignMiddleware` 放置到中间件第一位
``` python
# django settings
MIDDLEWARE = [
'request_sign.middleware.RequestSignMiddleware',
...
...
]
```
### 前端支持与示例
需要在header头中增加的参数,这里以[axios](./example/axios/index.js)作为参考,前端签名参考[示例js文件](./example/sign/index.js)
实际使用前请不要忘了删除示例文件中输出的日志信息
| 参数 | 说明 |
| ------------ | ------------ |
| timestamp | 请求时间戳 |
| nonce | 请求ID(随机生成) |
| sign | 本次请求签名 |
### 配置参数
配置参数 | 说明 | 类型|默认值 |示例
------------ | ------------ | ------------ | ------------ |------------
ENABLE_REQUEST_SIGNATURE | 是否开启 | Boolean |`False`| `True`/`False`
SIGNATURE_SECRET | 签名秘钥 | Str|`None`|`e6QGz7AhFzFAFsR9jYoCUnZGsqDrQI`
SIGNATURE_ALLOW_TIME_ERROR|允许请求时间前后误差|Int|`600`|`600`
SIGNATURE_RESPONSE|签名不通过返回方法|Str|`request_sign.utils.default_response`|`you_project.you_app.file.function`
SIGNATURE_PASS_LIST| List|[]|1. 在urls.py中配置name属性 `re_path('content/download', views.DownloadContent.as_view(), name='DownloadContent')`,配置中填写name值即可(推荐) 2.直接写url(不推荐)|`['DownloadContent']` or `['/api/v1/mcn/content/download']`
`request_sign.utils.default_response` 方法默认返回http状态码为200的空信息,你可以自行实现一个返回函数,更改 `SIGNATURE_RESPONSE`配置
即可,但请一定注意,自行实现的函数一定要返回一个django的`HttpResponse`对象,否则django会异常。
```python
# request_sign.utils.default_response
def default_response():
"""
Must return django HttpResponse type
:return: HttpResponse
"""
return HttpResponse()
```
### 签名参数sign生成的方法
1. 拼接字符串,首先去除sign参数本身,然后去除值是空的参数p3,剩下p2=v2&p1=v1&method=cancel&pn=vn,
然后按参数名字符升序排序,method=cancel&p1=v1&p2=v2&pn=vn.
2. 然后做参数名和值的拼接,最后得到methodcancelp1v1p2v2pnvn
3. 在上面拼接得到的字符串后加上验证密钥key,我们假设是abc,得到新的字符串methodcancelp1v1p2v2pnvnabc
4. 然后将这个字符串换为小写进行md5计算,假设得到的是abcdef,这个值即为sign签名值。
### 参考
* https://www.jianshu.com/p/ad410836587a
* https://www.cnblogs.com/yoyoketang/p/11742187.html
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
资源分类:Python库 所属语言:Python 资源全名:django-request-sign-1.0.4.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源推荐
资源详情
资源评论
收起资源包目录
django-request-sign-1.0.4.tar.gz (13个子文件)
django-request-sign-1.0.4
PKG-INFO 4KB
request_sign
utils.py 1KB
signature.py 3KB
middleware.py 564B
__init__.py 34B
settings.py 1003B
django_request_sign.egg-info
PKG-INFO 4KB
SOURCES.txt 315B
top_level.txt 13B
dependency_links.txt 1B
setup.cfg 38B
setup.py 737B
README.md 3KB
共 13 条
- 1
资源评论
挣扎的蓝藻
- 粉丝: 14w+
- 资源: 15万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功