angular色路由提供者在nodejs上进行身份validation

我目前正在用angular-js,nodejs和mongodb后端尝试一下我的第一个应用程序。 这个应用程序和它的URL是由ngRoute从angular度来pipe理的。 在这个应用程序中有一个小小的pipe理区域进行身份validation(基于nodejs的客户端会话)。 这工作到目前为止很好。 身份validation适用于由nodejspipe理的URL,但不适用于routeProvider的身份validation。 提供者看起来像这样:

app.config(['$locationProvider', '$routeProvider', function ($locationProvider, $routeProvider) { $routeProvider.when("/main", { templateUrl: "app/main/landing.html", controller: "MainController" }) .when("/admin", { templateUrl: "restricted", controller: "AdminController" }) .when("/login", { templateUrl: "app/login/login.html" }) .otherwise({redirectTo: '/main'}); }]); 

限制区域(/ admin)调用一个get服务器并发送view.html如果用户有效:

  app.get('/restricted', function (req, res) { if (!req.session_state.user) { res.res.status(302).redirect("/login");//Does not really work, should redirect to login, but endless loop } else { res.sendFile(path.resolve(__dirname + "/../views/restricted/admin.html")); } }); 

服务器的受限制文件夹位于nodejs提供的静态区域之外。

问题是深层链接(直接调用'#!/ admin')时会有一个无限循环。 这怎么解决? 我已经尝试了不同的url和状态代码。 这是一个正确的方法来实现与routeProvider身份validation或有更好的?