【问题标题】:AngularJS + expressJS - single page app + injecting templates dynamicallyAngularJS + expressJS - 单页应用程序 + 动态注入模板
【发布时间】:2015-04-18 02:43:26
【问题描述】:

我正在开发一个 angularJS + nodejs/expressjs 应用程序。

当用户访问应用程序的 url 时,我想检查用户是否已经登录,如果已登录,则向他显示应用程序的主页 否则,将用户重定向到应用程序的登录页面。

我的主页是指基于用户角色的页面。因此,这将根据数据库中的值来确定。

我假设我们有一个完整的 html 页面 (index.html),它将与其他部分页面一起发送到浏览器。 因此,当用户在未登录的情况下访问主页时,我需要将 partial-login.html 注入 index.html 并显示用户登录页面。 如果登录成功,再次将 homepage.html 注入 index.html。 如果用户已经登录,则在 index.html 中注入 partial-homepage.html 并向用户显示页面。

在 expressJS 路由中,我有一个“/”路由返回 index.html。但是,不确定如何根据上述情况注入不同的部分。有人可以帮我解决这个问题吗?

【问题讨论】:

  • ng-include 采用参数化的 html 路径.. 使用它

标签: angularjs node.js express


【解决方案1】:

你需要使用会话中间件。

https://github.com/expressjs/session

当用户登录时,将他的名字存储在会话变量中,当用户再次打开您的网站时,检查该变量是否已分配值。如果没有,则表示用户已注销并需要登录并呈现登录页面。

另外,当用户点击退出时,不要忘记销毁会话

如果您使用的是玉,请在其中使用 if/else 条件。当您检查用户是否在服务器端具有会话令牌时,然后在渲染时将变量值作为 true 发送到翡翠模板。否则为 false 并相应地显示登录页面(将登录表单放在模板中的 else 条件中)

【讨论】:

  • 感谢您的回复。我知道使用会话变量。我的问题是,由于它是一个单页应用程序,我们需要将登录页面作为部分之一注入到主 html 页面中。这部分是我不清楚的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-25
  • 2016-01-08
  • 2016-07-13
  • 1970-01-01
  • 1970-01-01
  • 2013-07-01
相关资源
最近更新 更多