2014-02-10 134 views
0

我写有不同的看法小的角度JS应用。一些视图可供所有用户使用,但只有几个视图才可用于登录用户。我在我的主页上有一个小的登录表单[请注意,没有单独的登录屏幕]。阻止访问基于某些条件下某些航线 - angularjs

一切都很好,直到这里,直到然后我注意到,即使所有的视图最初并没有在我的屏幕上可用,并且只会在用户登录后才加载。但是,如果用户知道受限视图的网址,他可以绕过登录过程。

我发现这个计算器问题非常相似,我的问题Redirecting to a certain route based on condition东西。请参阅接受的答案。

但这里的问题是,我没有一个单独的登录画面,所以我不能使用公认的答案

if (next.templateUrl == "partials/login.html") { 
      // already going to #login, no redirect needed 
     } else { 
      // not going to #login, we should redirect now 
      $location.path("/login"); 
     } 

给这个代码片断如何能够做到用相同的解决方案综合登录表单,因为我没有一个单独的网址为我的登录屏幕?

+0

任何人都可以请帮我在这里。 – user911

回答

0

我使用的UI路由器,并为每路线resolve属性。当路由被访问时,resolve部分被首先执行。它返回一个承诺,并且该页面在解析之前不会被加载。在这里,您可以编写一些服务器端调用来验证用户,如果无效,只需重定向到任何有效的页面。您可以为每个视图编写一个解决方案,并在每个步骤中验证用户。我使用节点/快速会话来存储登录的用户数据。