我需要能够使Django会话无效,即使没有Internet连接(或服务器已关闭,或任何事情)。会话cookie默认为httpOnly,我不想更改它,因此只是删除它不是一个选项。有没有标准的方法来处理这个问题?
相对简单的解决方案是在Django会话之上编写自定义中间件。这个中间件可以添加一个辅助会话令牌,比如<script>
// This example creates a 2-pixel-wide red polyline showing the path of
// the first trans-Pacific flight between Oakland, CA, and Brisbane,
// Australia which was made by Charles Kingsford Smith.
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 3,
center: {lat: 0, lng: -180},
mapTypeId: 'terrain'
});
var flightPlanCoordinates = [
{lat: 37.772, lng: -122.214},
{lat: 21.291, lng: -157.821},
{lat: -18.142, lng: 178.431},
{lat: -27.467, lng: 153.027}
];
var flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map);
}
</script>
,它可以从Javascript中访问(和删除)。两者都将被同时检查,因此只有一个丢失会使会话无效。但是,我强烈希望使用一些现成的解决方案,如果存在的话。
该应用程序可以作为Chrome的渐进式Web应用程序使用,因此如果有的话,我会对Chrome特定的解决方案感到满意。