AngularJS - 访问 Node/表达 session 信息

标签 angularjs node.js passport.js

我正在开发一个使用 Express 和 Passport 进行身份验证和授权的 Node 应用程序,并且所有这些都正常工作。然而,我对如何在我的 Angular Controller 中获取当前用户(通过 Passport 设置为 req.user)感到困惑。

我希望能够做正常的事情,比如在标题/导航栏中显示用户名(以及其他事情),我目前正在使用 Jade View 引擎来做这件事,但我不喜欢混合使用 Jade一些“数据绑定(bind)”的 View 引擎和其他的 Angular。

现在,我知道我可以轻松地调用 Node 中的 api 端点,以 JSON 形式返回 req.user,但这似乎是一个丑陋的解决方案,因为每次加载页面时我都会访问该端点(这不是 SPA)。

所以我的问题基本上是这样的:我能否在我的 Angular View 中获取当前登录的用户,这样我就可以完成我所有的数据绑定(bind)客户端,而不是一些服务器端(使用 Jade View 引擎)和一些客户端 Angular ?

注意:没有代码片段,因为一切实际上都按预期工作,我只是希望有一个比我目前拥有的更好的替代方案。

最佳答案

考虑在定义 ng-app 的 DOM 上使用“ng-init”,这是在 Express 中打印的服务器端数据(假设为 Dust 模板)。下面是一个简单的例子:

    <body ng-app="testApp" ng-controller="homeCtrl" ng-init="logged_in_user = {req.user}">
      <div...
      ...
    </body>

然后你可以在你的 homeCtrl 中访问 logged_in_user,作为“scope.logged_in_user” 希望这有帮助..

-婆斯卡拉

关于AngularJS - 访问 Node/表达 session 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16919942/

相关文章:

css - 如何在 AngularJS ui-grid 的分组网格中显示列页脚?

node.js - 我们是否应该将 Helmet 中间件与在 Firebase Cloud Function 上运行的 Express 应用程序一起使用?

javascript - 如何让 if 条件看起来更简洁?

javascript - 如何解析多个页面?

node.js - Passport : different redirect for login and account registration

javascript - 仅当不在 div 中时才需要运行指令

angularjs - Angular js Div 仅显示 3 秒

node.js - Passport express /注册 500 未知错误

node.js - 客户端必须经过身份验证才能访问此资源。 jira 休息 API

javascript - 当用户在输入文本框中键入内容时,绑定(bind)丢失的一种方式