小编rem*_*x23的帖子

如何在注销时销毁JWT令牌?

我在hapijs中使用jwt插件和策略.我能够在登录用户时创建jwt令牌,并通过'jwt'策略使用相同的令牌验证其他API.我在'request.state.USER_SESSION'中将令牌设置为一个cookie,其中USER_SESSION是令牌名称.另外,我没有将这些令牌保存在数据库中.但是如何在注销时销毁jwt令牌.请建议一个方法.

node.js jwt hapijs

42
推荐指数
4
解决办法
7万
查看次数

VSCode:如何调试当前的 Jest 测试文件

如何在当前打开的文件上以调试模式启动 jest,并且仅此一个,无论操作系统如何(windows、linux、mac)。

问题

windows下使用vscode时,无法调侃当前(活动)文件,只能调侃这一个

此调试配置(来自https://github.com/microsoft/vscode-recipes/tree/master/debugging-jest-tests):

{
      "type": "node",
      "request": "launch",
      "name": "Jest Current File",
      "program": "${workspaceFolder}/node_modules/.bin/jest",
      "args": [
        "${fileBasenameNoExtension}",
        "--config",
        "jest.config.js"
      ],
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen",
      "disableOptimisticBPs": true,
      "windows": {
        "program": "${workspaceFolder}/node_modules/jest/bin/jest",
      }
    }
Run Code Online (Sandbox Code Playgroud)

如果您有多个同名测试(例如index.test.js),则不会仅运行活动测试

如果我更换

    "args": [
        "${fileBasenameNoExtension}",
        ....
    ]
Run Code Online (Sandbox Code Playgroud)

经过

    "args": [
        "${file}",
        ...
    ]
Run Code Online (Sandbox Code Playgroud)

根本不起作用,因为 jest 期望的第一个参数是正则表达式并${file}返回文件的绝对路径,在 Windows 计算机上,该路径将包含\反斜杠,反斜杠又将被解释为转义模式中的以下字符。

仔细阅读 Jest 的文档后,不可能指定单个文件。

并且 VSCode 无法将变量转换为正则表达式。

这个问题的解决方案虽然几乎相似,但也不起作用,因为它对同名文件失败(情况1)。

因此,要么运行比预期更多的测试,要么根本不运行测试。

我找到了一个涉及单独脚本的解决方案,但任何其他解决方案将不胜感激。

windows jestjs visual-studio-code

10
推荐指数
3
解决办法
1万
查看次数

如何使用 Javascript 计算 1 个会话中访问的总页面数

我想要一个脚本来计算一个人在我的网站的一次会话期间点击的页面数量,并可能还记录每个 URL。目的是在提交表单时,我想填充表单的两个隐藏字段,一个包含页面,另一个包含会话期间访问的 url 序列。

最初我想用cookie来做到这一点,在每个页面上,读取并获取cookie的当前值,将其存储在变量中,删除cookie,并使用附加的重写cookie多变的。我打算使用纯 JavaScript。

然后我遇到了 HTML5 sessionStorage 并认为这可能是一个很好的解决方案。

这是我当前的代码,可以计算访问的页面数。我担心的是,使用此方法记录 url 可能会超出 cookie 的大小分配。

有没有更好的办法?我应该考虑 HTML5 存储吗?

下面是我的工作代码。我对其进行了编码,以便在每个页面上查找具有 ID pageCount 的表单元素,如果存在,则用我的值填充它。

我还计划使用经典 ASP 中的 Request.Servervariables("HTTP_X_ORIGINAL_URL") 来构建访问过的页面列表并将其存储在 cookie 或存储中。

var page_count =  (document.cookie.match(/^(?:.*;)?\s*pageCount\s*=\s*([^;]+)(?:.*)?$/)||[,null])[1];

function createCookie(name,value,days) {

    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";

}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var …
Run Code Online (Sandbox Code Playgroud)

html javascript cookies session-storage

6
推荐指数
1
解决办法
4758
查看次数