我仍然是angularjs的新手,并试图理解这个概念。我有一个有效的解决方案,但我只需要确保这是一种安全的方式。我有一个$rootScope.$on('$stateChangeStart', function(){}
发送一个http帖子到一个php文件,这检查它是否有会话数据并返回" 1"是真实的" 0"是假的。如果为false,则执行$state.go('login');
重定向到登录页面。这完全符合我的意愿,但如果这足够安全的话,只需要进一步了解。
答案 0 :(得分:0)
虽然还有其他几种验证会话数据的方法,但您的方法也很好。
将$on
括在app.run
方法中并检查用户是否在登录页面上,然后避免$http
来电。
app.run(function ($rootScope, $state) {
$rootScope.$on('$stateChangeStart', function (event, next, nextParams, prev, prevParams) {
//Check if already on login page do not check session
if (next.name === 'login') {
return;
}
//$http call to check session
});
});
答案 1 :(得分:0)
这完全符合我的意愿,但如果这足够安全,只是想进一步了解。
使用javascript或angular或任何其他SPA
框架时,请忘记会话。使用token based authentication
系统可以提供更多优势,更高的安全性和更高的可扩展性。
有一个很好的例子here。它涵盖了您需要的令牌库auth的几乎所有方面。虽然它适用于ionic
,但并不重要。离子是建立在角度的顶部。