javascript - 将后端快速 session 变量传递给 Angular

标签 javascript node.js angularjs express pug

当前代码:

<div ng-controller="HeaderCtrl" class="header">
  <div class="logo">intquest</div>

  <div ng-if="signed_in" class="header-actions">
    <a href="/#/random">Random</a>
    <a href="/#/add">Add question</a>
  </div>

  <div ng-if="!signed_in" class="header-actions">
    <a href="/#/register">Register</a>
    <a href="/#/login">Login</a>
  </div>
</div>

我想以某种方式将我的 Express session 变量传递给 $scope.signed_in 变量。因为这是一个 HTML 而不是 Jade 模板,我不能使用 JSON.stringify,我没有后端 API,所以我认为我不能制作一个 $http 或资源请求,我应该怎么做呢?最佳做法是什么?

最佳答案

假设您无法创建后端 API,我可以想到两件事:

  1. 查看 cookie 是否存在。 尝试注入(inject) $cookes服务到您的 HeaderCtrl 并检查它以查看您的 Expression session 是否留下任何 cookie。如果你这样做并且你知道它的名字(看起来它是来自 this'connect.sid' - 除非你覆盖默认值)那么只需设置 $scope.signed_in 返回一个表达式,该表达式返回该名称是否存在 cookie。这假定注销时 cookie 不存在。我不知道这个假设是否正确。

  2. 如果这不起作用,如果您绝对无法进行 API 调用,请尝试从 cookie 中读取一个值我认为您可能需要确保 cookie 没有一个 secret ,等等 - 然后我假设它可以从客户端/在 Angular 中读取。

如果这两种方法都不起作用,或者如果您不能/不想这样做(以及为什么),请告诉我,我会考虑是否可以考虑替代方案(基于您的原因/约束)。

关于javascript - 将后端快速 session 变量传递给 Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25838949/

相关文章:

javascript - Controller 无法读取工厂嵌套中的数据(ANGULAR JS)

javascript - 为什么 ng-pattern 无法正确验证非用户输入事件的更改?

javascript - 使用 AngularJS 作为 JQuery 的替代品

javascript - 从远程 URL 检索 javascript cookie 列表

javascript - 无法在固定的 div 内滚动 div

javascript - 二进制到十进制转换器问题

javascript - 获取 Microsoft JScript 编译错误

node.js - 如何在ubuntu 16.04上安装最新版本的nodejs?

javascript - appendTo 不适用于移动设备

javascript - 等待许多异步函数执行