当在服务器上呈现导航栏以进行基于角色的授权时,AngularJS路由配置

时间:2014-01-20 14:11:09

标签: angularjs lift angularjs-routing

出于安全原因,我们希望在服务器上呈现导航栏。在这种情况下,如何使用angularjs处理客户端上的路由配置。

我们正在使用Scala和Lift(站点地图)在服务器端渲染菜单。

如果有人提供任何样本申请,那将会很棒。

谢谢大家。

1 个答案:

答案 0 :(得分:0)

在服务器端过滤未经授权的请求具有优先权,请记住,虽然调试器,用户脚本,加载项用户可以使用客户端应用程序执行任何他们喜欢的操作。

可以通过多种方式实现您的目标...

  1. 将数组/对象/某些可用菜单项作为资源提供。
  2. 只需根据身份验证服务提供的用户对象启用禁用(ng-show)菜单项。
  3. 根据经过身份验证的状态切换模板。
  4. 可能还有更多...但如果服务器端点没有正确锁定,那么以上所有内容都不会屏蔽您的应用程序。

    (我相信这也是@flup所指的)


    至于路由配置,如果你选择在服务器端渲染它,这是更棘手的,除非你不想在服务器上生成javascript并完全刷新(yuck,尤其是yuck因为它离开了我们没有缓存的能力)......

    由于您在配置期间无法访问服务,因此您必须查看在这些块中发出服务器请求的位置,并确保路由在那里,您可能还需要将其设置为阻塞调用(通常不是我们做什么)。

    到目前为止,AFAIK,没有路由框架直接支持可以帮助您的功能。我甚至认为https://github.com/dotJEM/angular-routing是路线图中唯一拥有它的人......

    不要认为在ngRoute,https://github.com/angular-ui/ui-routerhttp://angular-route-segment.com/

    中有任何计划

    我可能错了。