我几乎没有开始阅读 JWT,我相信我了解 JWT 令牌是什么。我对 SESSIONS 也相当熟悉。我相信我了解每个人的优点和缺点。但是,有几个部分让我感到困惑。
当请求受保护的资源时,您需要在每个请求上发送 jwt,而不是将会话存储在服务器上。但:
1) 你如何存储你的 JWT 令牌以及在哪里。从我读到的内容中,我了解到您将身份验证请求发送到服务器,如果您成功通过身份验证,服务器会向您发送 JWT 令牌。那你怎么办?,你是否将 JWT 存储在 cookie 中,就像我在某些网站上读到的那样?如果是这样,你怎么做(使用 php,使用 javascript)。以及如何阅读。
2)使用会话时,或多或少您只是检查是否有会话来检查用户是否登录。使用JWT时如何完成此操作。
我也在一些页面上看到了这个:
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
Run Code Online (Sandbox Code Playgroud)
这与此有什么关系(如果有关系的话)
我有一个看起来像这样的数组:
files = [
  'Dashboard/Logs/Errors',
  'Dashboard/Logs/Other',
  'Accounts/Main',
]
Run Code Online (Sandbox Code Playgroud)
我想让它看起来像这样:
navigation = [
  {
    "title": "Dashboard",
    "dropdown": [
      {
        "title": "Logs",
        "dropdown": [
          {
            "title": "Errors",
          },
          {
            "title": "Other",
          }
        ]
      }
    ]
  },
  {
    "title": "Accounts",
    "dropdown": [
      {
        "title": "Main",
      }
    ]
  }
]
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有以下内容:
var navigation = [];
for (var i = 0; i < files.length; i++) {
  var parts = files[i].split('/');
  navigation.push({title: parts[0]});
  for (var j = 1; j < parts.length; j++) {
  }
}
Run Code Online (Sandbox Code Playgroud)
我很难找到一个体面的方法来做到这一点.到目前为止我已经无法工作,因为它在导航下创建了两个对象 …
我有一个用于获取资源的 javascript (node.js v12) 异步函数。它首先调用缓存来检查资源是否被缓存。如果是,则返回缓存的资源。如果不是,则从路径中获取资源,将其放入缓存中,然后返回资源。将资源放入缓存的函数是异步的。但是,无需等待此操作完成即可返回资源。如果在函数中的 promise 尚未解决时从函数返回,会导致任何问题吗?我什至不需要知道函数是否出错,因为即使资源无法放入缓存中,我仍然想返回资源。下面的基本示例:
async function getResource(path) {
  const cachedResource = await getResourceFromCache(path).catch(logError);
  if (cachedResource) {
    return cachedResource;
  } else {
    const resource = await getResourceFromPath(path);
    putResourceInCache(path, resource).catch(logError); // This is an async function but I did not use await
    return resource;
  }
}
app.post('/test', async (req, res) => {
  // Code ...
  const resource = await getResource(path));
  // Code ...
  return res.status(200).send(value);
});
Run Code Online (Sandbox Code Playgroud) 我正在使用 jsonlint 对目录中的一堆文件进行 lint(递归)。我写了以下命令:
find ./config/pages -name '*.json' -print0 | xargs -0I % sh -c 'echo Linting: %; jsonlint -V ./config/schema.json -q %;'
它适用于大多数文件,但有些文件我收到以下错误:
Linting: ./LONG_FILE_NAME.json
fs.js:500
 return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                ^
  Error: ENOENT, no such file or directory '%'
Run Code Online (Sandbox Code Playgroud)
对于长文件名,它似乎失败。有没有办法来解决这个问题?谢谢。
编辑1: 发现问题。
-I replstr对每个输入行执行实用程序,将一个或多个 replstr 替换为实用程序的整行输入,最多替换(如果未指定 -R 标志,则为 5 个)参数。替换完成后,生成的参数将不允许增长超过 255 个字节;这是通过将尽可能多的包含 replstr 的参数连接到实用程序的构造参数来实现的,最多 255 个字节。255 字节的限制不适用于不包含 replstr 的实用程序的参数,此外,实用程序本身不会进行替换。意味着 -x。
编辑 2: 部分解决方案。支持比以前更长的文件名,但仍然没有我需要的那么长。
find ./config/pages -name '*.json' -print0 | xargs -0I % sh -c 'file=%; echo Linting: $file; …
我有一个python CGI脚本,它接收包含特定HTTP标头的POST请求。您如何阅读和解析收到的标头?我没有使用BaseHTTPRequestHandler或HTTPServer。我收到的邮件正文sys.stdin.read()。谢谢。
我有一个页面,我正在变成一个带有wkhtmltopdf的pdf.我有一个3列布局,它在Chrome中运行良好,但pdf生成不正确.是否有一个替代flexbox可以提供相同的视图或方法使wctmltopdf中的flexbox工作?Modernizr没有帮助.谢谢.
HTML:
<div class="header">
  <div id="name" class="center">
    <h2>
      Centered Text
    </h2>
  </div>
  <div id="links" class="left">
    <h3>
    Left Line 1
    <br>
    Left Line 2
    </h3>
  </div>
  <div id="contact" class="right">
    <h3>
    Right Line 1
    <br>
    Right Line 2
    </h3>
  </div>
</div>
</div class="clear"></div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.header {
  margin-top: 0;
  margin-bottom: 2px;
  display: flex;
  justify-content: space-between;
}
.center {
  order: 2;
  text-align: center;
}
.left {
  order: 1;
  float: left;
  text-align: left;
}
.right {
  order: 3;
  float: right;
  text-align: right;
}
.clear:before,
.clear:after …Run Code Online (Sandbox Code Playgroud) 我正在编写一个节点服务器,从文件系统中读取/删除/添加/ etc文件.异步读取是否有任何性能优势?等待文件读取时我无法做任何事情.例:
deleteStructure: function(req, res) {
  var structure = req.param('structure');
  fs.unlink(structure, function(err) {
    if (err) return res.serverError(err);
    return res.ok();
  });
}
Run Code Online (Sandbox Code Playgroud)
我也使用http.get向另一台服务器发出请求.异步获取是否有任何性能优势?在等待获取文件时,我无法执行任何操作.例:
getStructure: function(req, res) {
  var structure = urls[req.param('structure')];
  http.get(structure).then(
    function (response) {
      return res.send(response);
    },
    function (err) {
      res.serverError(err)
    }
  );
}
Run Code Online (Sandbox Code Playgroud)
如果异步读取文件没有性能优势,我可以使用同步方法.但是,我不知道http调用的同步方法,是否存在任何内置方法?
仅供参考我使用的是Sails.js.
谢谢!
javascript ×3
node.js ×2
async-await ×1
asynchronous ×1
bash ×1
cgi ×1
css ×1
flexbox ×1
html ×1
http-headers ×1
jsonlint ×1
jwt ×1
python ×1
wkhtmltopdf ×1
xargs ×1