4

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

我希望能够做一些普通的事情,比如在标题/导航栏中显示用户名(除其他外),我目前正在使用 Jade 视图引擎执行此操作,但我不喜欢使用 Jade 视图引擎进行混合一些“数据绑定”和其他的 Angular。

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

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

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

4

1 回答 1

1

考虑在定义 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”希望这会有所帮助..

-巴斯卡拉

于 2013-06-04T14:13:50.357 回答