我的移动网站上有几页。一个页面允许用户登录,另一个页面向用户显示他们的日期并允许用户注销。但是,当用户注销并重定向到登录页面时,他们可以单击后退按钮并返回到他们认为已通过身份验证的页面。
我只有一个html页面分成多个div(“页面”)并使用$.mobile.changePage
从一个页面导航到另一个页面。
如何才能使用户点击后退按钮时看不到他们的数据?
当我浏览回来时,我的'pageinit'没有被执行。如果是,我将能够检查用户是否已登录...
答案 0 :(得分:1)
示例:
JS
var $secure_token = true;
$('div').live('pageshow',function(event, ui) {
// Check for secure token here
if($secure_token != true) {
$.mobile.changePage("#login", { transition: "slideup"} );
}
});
// Act if user has logged out
$('#secure2').live('pageshow',function(event, ui) {
$secure_token = false;
});
HTML
<div data-role="page" id="login">
<div data-role="content">
<ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f">
<li data-role="list-divider">Redirect</li>
<li><a href="#secure1">Secure Page 1</a></li>
<li><a href="#secure2">Secure Page 2</a></li>
</ul>
</div>
</div>
<div data-role="page" id="secure1">
<div data-role="content">
<ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f">
<li data-role="list-divider">Secure Page 1</li>
<li><a href="#secure2">Secure Page 2</a></li>
</ul>
</div>
</div>
<div data-role="page" id="secure2">
<div data-role="content">
<p>Please hit the browser back button or right click and back</p>
</div>
</div>
答案 1 :(得分:0)
我认为这是正常的行为,因为任何浏览器都会保存它呈现的上一个网页。我刚用我自己的网页测试过,它确实显示了信息,但每当你尝试更改某些内容时,系统都会重定向到登录视图。
我的意思是,他们会看到以前的数据,但它会过时,如果没先登录就无法更改。