我的应用程序有单页,并为所有选项卡导航实现了ngRoute。 现在,需要实现登录和注册。仅发布到它,它应导航到所有选项卡导航。
我对以下几点感到困惑: 1)我是否必须创建另一个用于登录和注册的新页面并发布到登录,执行location.href并重定向到包含所有选项卡导航的现有页面。 (这对基于SPA的应用程序有效吗?)。
2)或者我是否必须在所有选项卡导航存在的同一页面上添加登录和reigsteration。 (在此选项中,我不确定,如何在登录或任何安全威胁之前隐藏所有选项卡。)
应用程序是使用angularjs和web api开发的。
请在此处提供帮助以显示最佳方法。
感谢
答案 0 :(得分:1)
最佳方法是使用ui.router而不是ngRoute。
接下来是在app.run.js文件中添加根范围状态更改侦听器
并在其中添加身份验证检查,如下所示
var userInfo = authenticationService.isAuthenticated();
var isLogin = toState.name === "login";
if(isLogin){
if(userInfo)
e.preventDefault();
return;
}
if(userInfo === false) {
e.preventDefault();
$state.go('login');
}
希望这会有所帮助
答案 1 :(得分:1)
您可以在同一页面中登录和注册路线。 Angular JS提供了一个$ cookie服务,可以设置cookie。
在用户登录或注册之前,您可以检查cookie并使用angular提供的指令隐藏选项卡,例如:ng-if。
用户登录后,您可以使用" $ location.path"导航到主页。提到你所要求的路径。