如何在SPA应用程序中开发登录/注册

时间:2017-01-11 16:53:58

标签: javascript angularjs single-page-application

我的应用程序有单页,并为所有选项卡导航实现了ngRoute。 现在,需要实现登录和注册。仅发布到它,它应导航到所有选项卡导航。

我对以下几点感到困惑:   1)我是否必须创建另一个用于登录和注册的新页面并发布到登录,执行location.href并重定向到包含所有选项卡导航的现有页面。 (这对基于SPA的应用程序有效吗?)。

2)或者我是否必须在所有选项卡导航存在的同一页面上添加登录和reigsteration。 (在此选项中,我不确定,如何在登录或任何安全威胁之前隐藏所有选项卡。)

应用程序是使用angularjs和web api开发的。

请在此处提供帮助以显示最佳方法。

感谢

2 个答案:

答案 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"导航到主页。提到你所要求的路径。