小编Ale*_*hel的帖子

在哪里存储 JWT

我几乎没有开始阅读 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)

这与此有什么关系(如果有关系的话)

javascript jwt

8
推荐指数
2
解决办法
4520
查看次数

Javascript数组到对象

我有一个看起来像这样的数组:

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

7
推荐指数
1
解决办法
108
查看次数

在承诺解决之前从函数返回是否有任何问题?

我有一个用于获取资源的 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)

javascript node.js async-await

7
推荐指数
1
解决办法
67
查看次数

xargs 命令长度限制

我正在使用 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; …

bash xargs jsonlint

6
推荐指数
2
解决办法
2533
查看次数

如何在Python CGI脚本中读取所有HTTP标头?

我有一个python CGI脚本,它接收包含特定HTTP标头的POST请求。您如何阅读和解析收到的标头?我没有使用BaseHTTPRequestHandlerHTTPServer。我收到的邮件正文sys.stdin.read()。谢谢。

python cgi http-headers

5
推荐指数
2
解决办法
3277
查看次数

Flexbox wkhtmltopdf渲染问题

我有一个页面,我正在变成一个带有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)

html css wkhtmltopdf flexbox

4
推荐指数
1
解决办法
6445
查看次数

节点异步与同步

我正在编写一个节点服务器,从文件系统中读取/删除/添加/ 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.

谢谢!

asynchronous node.js

2
推荐指数
1
解决办法
103
查看次数