对应一下一种情况的业务场景:
如果实现如果用户没有登录成功则无权限访问view A、view B、view C页面,且跳转至login view
在login.view的登录ajax请求的success分支中添加如下:
$.ajax({ url :"", type:"get", dataType : "json" , success : function(res){ sessionStorage.setItem("isLoad",true) //如果这里是一个页面路由表则可以做路由控制展示了。 }, error : function(res){ console.log(‘res = ‘,res); }
})
在view A等其他页面的初始化渲染时候添加如下:
var isLoaded = sessionStorage.getItem("isLoad");if(!isLoaded){ window.location = ("../index.html"); //登录页面}
如此一来每次登录到该session域内,如果没有登录成功(取得认证通过)。则就没有访问其他页面的权限。
注:之所以使用sessionStorage是因为sessionStorage在关闭后都会被清空。符合安全规则。sessionStorage就相当于单页面应用中的一个全局变量(类似于angular中的RootScope)可以在所有的view中共享。介于此也可以通过sessionStorage来实现angular的RootScope的一些机制。 这里只是做了一个是否登录的判断,感兴趣的朋友可以在此基础上实现路由的管理。
时间: 2024-10-14 12:06:02