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

Javascript 如何在SPA应用程序中开发登录/注册,javascript,angularjs,single-page-application,Javascript,Angularjs,Single Page Application,我的应用程序只有一个页面,并为所有选项卡导航实现了ngRoute。 现在,需要实现登录和注册。只发布到该页面,它应该导航到所有选项卡导航 我对以下几点感到困惑: 1) 我是否必须为登录创建另一个新页面,并注册和发布到登录,执行location.href并重定向到包含所有选项卡导航的现有页面。(这对基于SPA的应用有效吗?) 2) 或者我必须在所有标签导航存在的同一页面上添加登录和重新登录。(在此选项中,我不确定如何隐藏所有选项卡,直到登录或出现任何安全威胁) 应用程序是使用angularjs和w

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

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

2) 或者我必须在所有标签导航存在的同一页面上添加登录和重新登录。(在此选项中,我不确定如何隐藏所有选项卡,直到登录或出现任何安全威胁)

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

请在此提供帮助,以展示最佳方法


谢谢

最好的方法是使用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');
}

希望这将有助于

您可以在同一页面中登录和注册路由。Angular JS提供了一个$cookie服务,可以在其中设置cookie

在用户登录或注册之前,您可以使用angular提供的指令检查cookie并隐藏选项卡,例如:ng if


用户登录后,您可以通过提及所需路径,使用“$location.path”导航到主页。

我建议使用拦截器验证所有传出请求。从中您也可以获得身份验证的状态。对于登录/注册,您有另一条路线。如果您有一些选项卡只有在登录后才能访问,则始终可以从后端向登录屏幕发送重定向。这意味着,登录/注册以保持在同一控制器上,并且每个请求都通过某个网关进行验证。我将尝试使用ui.route appraoch。