django一次性链路发生器和处理器
ua2.otl的Python项目详细描述
用于创建ont时间链接的django工具
安装
为了与django集成,需要将ua2.otl添加到已安装的应用程序列表:
INSTALLED_APPS+=('ua2.otl')
并放入根url.py下一行:
url(r'^l/',include('ua2.otl.urls'))
警告:仅包含url.py compatibil,django>;=1.8。 对于1.8之前的django,需要使用以下解决方案:
fromua2.otl.viewsimportotl_viewurlpatterns=urlpatterns(.....url(r'^l/(?P<otp_key>\w+)/$',otl_view,name='one-time-link'),)
使用
您可以将onetimelink用于多个场景:
- 重定向至使用django backresolve查看(使用支持回调)
- 重定向到直接URL(带支持回调)
- 使用视图重排响应
重定向
有两种方法可以将结果链接传递到onetimelink对象:
- 用kwargs传递url解析点
- 传递渲染链接
fromua2.otlimportOneTimeLinklink=OneTimeLink.create(resolve_name='django-url-name',resolve_kwargs={'value':1})link.save(expire=3600)
带有回调和授权的示例:
fromua2.otlimportOntTimeLinkdefauth_callback(request,user_email):user=get_object_or_404(User,email=user_email)login(request,user)@login_requireddefpassword_restore(request):....defsend_restore_passwortd(request):link=OneTimeLink.create(resolve_name='url-password-reset')link['user_email']=request.POST.get('user_email')link.save(callback=auth_callback,expire=3600,count=1)returnHttpResponse("http://127.0.0.1:8000%s"%link.url)