下面是代碼在我base.html文件頭我的Django的模板布爾變量無法正常運行的JavaScript
<script>
var auth_status = "{{ user.is_authenticated }}"
</script>
{% block scripts %} {% endblock %}
在我的網站上的腳本的其餘都在腳本塊。
在子模板(腳本塊內和腳本標籤中)我有這樣的代碼,
if (auth_status) {
//something
}
眼下的錯誤的auth_status始終是真實的,當它應該是開啓和關閉取決於如果用戶已登錄。Request_context正在傳遞給模板,因此不應該是錯誤。
感謝
悅目無關你的問題,但要注意不是做'如果(user_is_authenticated){做的東西;如果你真的依賴這個JS變量的值,''可能是一個安全問題。用戶可以在執行之前修改JS變量的值。 –
所以你說用戶可以以某種方式設置auth_status = true?那麼繞過js var是一個有效的解決方法?例如:if({{user.is_authenticated | yesno:「true,false」}})與if(auth_status)? –
惡意用戶可能只是拉你的網頁的源代碼,並用他們想要的任何東西替換他們想要的任何東西。有**沒有**方式可以實現任何**安全客戶端(即在JS中)並且有**沒有解決方法**,所有安全/訪問控制必須完成服務器端(即在你的Python代碼中)。 JS不是你的動態執行的應用程序代碼的擴展,它是*不同的*,具有不同的約束。 –