我正在开发一个使用 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/