未提供项目描述
项目描述
django-dreiattest
dreiattest 利用pyttest并将其集成到 django 中。它处理路由、不同的配置选项以及令牌和公钥的持久性。要使用 dreiAttest,您需要使用iOS和Android / Kotlin Multiplatform的相应库。
安装
dreiAttest 在 PyPI 上可用,可以通过$ python -m pip install dreiattest-django.
安装后确保添加dreiattest到您的INSTALLED_APPS并触发所有迁移python manage.py migrate dreiattest。此外,您需要在 urls.py 中注册默认端点
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('dreiattest.urls')),
...
]
配置
您可以或必须在 settings.py 中设置多个设置。以下是强制性的:
- 苹果:
DREIATTEST_APPLE_APPID - 谷歌:
DREIATTEST_GOOGLE_APK_NAME,DREIATTEST_GOOGLE_APK_CERTIFICATE_DIGEST
这些是所有可能的配置值以及它们的作用。
- DREIATTEST_BASE_URL:我们的不同端点,如 /key 和 /nonce 将在这个 slug 下方
- DREIATTEST_UID_HEADER:包含 DeviceSession uid 的标头
- DREIATTEST_ASSERTION_HEADER:包含断言的标头
- DREIATTEST_USER_HEADERS_HEADER:包含在断言中的逗号分隔的标头列表的标头
- DREIATTEST_NONCE_HEADER:包含在证明中使用的服务器随机数的标头
- DREIATTEST_BYPASS_HEADER:包含共享密钥的标头以绕过验证过程。有助于调试
- DREIATTEST_APPLE_APPID:包含苹果应用程序 ID 的标头
- DREIATTEST_GOOGLE_APK_NAME:包含 google apk 名称的标头
- DREIATTEST_PRODUCTION:指示我们是否处于生产环境中。如果这是真的,将进行一些额外的验证。这些在pyttest自述文件中进行了描述。
- DREIATTEST_GOOGLE_APK_CERTIFICATE_DIGEST:Google APK 证书的 SHA256 十六进制
- DREIATTEST_PLUGINS:实现的类列表
BasePlugin- 为您提供处理额外验证的选项 - DREIATTEST_BYPASS_SECRET: DANGERZONE如果设置了此项并且客户端发送了 DREIATTEST_BYPASS_HEADER,则跳过验证。
您可以在settings.py中找到它们每个的默认值(如果有)
用法
剩下的就是添加signature_required视图装饰器。
from dreiattest.decorators import signature_required
@signature_required()
def demo(request: WSGIRequest):
return JsonResponse({'foo': 'bar'})
错误处理
您应该处理的主要两个异常是PyAttestException和DreiAttestException。HandleDreiattestExceptionsMiddleware如果您不想自己处理这些错误,可以使用dreiattest 。中间件仅捕获这两个异常类并返回JsonResponse状态码 400。
MIDDLEWARE = [
...
'dreiattest.middlewares.HandleDreiattestExceptionsMiddleware',
]
典型流程
- CLIENT(可能是 android 或 google)使用设备会话标识符向 dreiattest/nonce 发出请求,以获取服务器 nonce。会话 ID 和随机数都保存在服务器上。
- CLIENT 向 dreiattest/key 发送证明。此请求再次保存设备会话标识符以及步骤 1 中的 nonce。nonce 将被标记为“已使用”并用于验证证明。然后将来自客户端的公钥分配给设备会话并保存在数据库中。
- CLIENT 向任何用 装饰的视图发送请求
@signature_required。该请求包含一个断言,该断言将在执行实际 django 视图之前进行验证。
出版/投稿
master为可能的拉取请求创建一个分支- 向 pypi 发布新版本:
- 更新版本
__version__.py - 触发器
$ pipenv run upload- 这将自动在 git 中创建并推送正确的标签并将该版本上传到 pypi
- 更新版本
项目详情
关
django_dreiattest -0.0.26-py2.py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 316a57f97c9d2c9933a196032797c798e27d78935d2f0cb604cde6d64681bd0c |
|
| MD5 | a38aa40d9926db80fa826d9e4d853317 |
|
| 布莱克2-256 | ebb2e2909fb5fef92d8a7e06a5b70a806c747e1472b265c8460d1fb968ccfe05 |