[英]How to prohibit back or refresh using django
這是我的代碼:
def to_complete(request):
return MobileResponseRedirect('/battle/complete/')
def complete(request):
do_something()
return MobileResponse(html)
但是這種方法不能防止后退,
我做了重要的事情complete
(例如游戲中增加的錢)
我不希望用戶刷新頁面或返回到父頁面,
我能做什么 ,
謝謝
一個簡單的想法是使用會話變量,如下所示:
def to_complete(request):
if request.session.has_key("complete_pending"):
return HttpResponseForbidden()
request.session["complete_pending"] = True
return MobileResponseRedirect('/battle/complete/')
def complete(request):
if not request.session.get("complete_pending", False):
return HttpResponseForbidden()
request.session["complete_pending"] = False
do_something()
return MobileResponse(html)
這種方法將使用戶僅在to_complete
和complete
輸入一次 。 如果您希望用戶再次輸入,只需取消設置會話變量即可。
我看到幾個選擇:
您可以在do_something()之后再次重定向:
def complete(request): do_something() return MobileResponseRedirect('/battle/complete_msg/') def complete_msg(request): return MobileResponse(html)
如果仍然擔心(特別是擔心用戶作弊系統),則應在服務器上設置某種標志,表明該操作已完成。 很難說如何在不了解您的應用程序的情況下准確地做到這一點。 一個示例可能是僅在用戶執行了某些操作(例如,打敗某個關卡)並記錄該操作已發生的情況下,才允許執行此完整操作,以便該完整操作只能在一次關卡操作中發生一次-行動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.