javascript - Django - 挑战和响应场景(创建随机字符串并由客户端签名,以便它签入服务器)
问题描述
在 asp.net 中,我使用此代码:(服务器端)
if (!post-back)
create challenge
else
verify response
在java脚本中:(客户端)
onclientclick(aspBTN)
response = sign(challenge)
注意:在顶部代码页面中加载并创建挑战,因此用户通过单击 html 页面中的 asp btn 在 java 脚本中运行 sign func 并在加载页面中运行验证响应。
在 Django 中,我创建挑战并保存在隐藏项目中:view.py 文件:
def index(request):
rng = uuid.uuid4().hex
request.session["challenge"] = rng
return render(request,"Djangoapp/index.html", {'challenge': rng})
我定义了这个 btn:
<input id="btnLogin" type="button" value="Login" class="btn btn-primary btn-lg" onclick="Sign()" />
在符号函数中我得到响应。现在我需要运行服务器端函数(python)来验证响应。
我是 django 的初学者。
解决方案
好的,据我了解,您在单击按钮时要实现的是服务器端函数调用?
有多种方法可以实现: 1. Xhr 或 Ajax 调用 2. 在 javascript 中使用 fetch api
所有这些都将与在 django 后端创建的 RESTful API 进行交互。例如 :
def my_api_call(request):
post_data = json.loads(request.body)
perform_activity = post_data['activity_status']
if perform_activity == True:
call_function()
return JsonResponse({"status":200, "response":"SUCCESS"})
如果这不是您想要的,也许可以通过发布代码来提供更清晰的信息。
推荐阅读
- java - 如何参考 TestNG 从 POM.XML 运行特定的 Java 类
- debugging - NuGet/MyGet 调试抛出未找到源代码错误
- sql - 每组记录只显示一次值
- git - 从现有的 Git 存储库中进行稀疏签出?
- jquery - 选择所有在 webgrid Jquery 和 ASP.net MVC 中不起作用的复选框
- jenkins - 无法启动 Windows 从代理 (Jenkins)
- python - aiohhttp 中的会话重用
- java - 使用杰克逊读取 yaml 到对象
- javascript - 使用 jquery ajax 调用 nodejs 获取 json 数据
- azure - 如何找到blob的路径?