Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax 曲奇是;“未定义”;科威特航空公司/特快专递请求 我使用膝关节炎JOS框架进行JWT认证。_Ajax_Node.js_Express_Cookies_Koa - Fatal编程技术网

Ajax 曲奇是;“未定义”;科威特航空公司/特快专递请求 我使用膝关节炎JOS框架进行JWT认证。

Ajax 曲奇是;“未定义”;科威特航空公司/特快专递请求 我使用膝关节炎JOS框架进行JWT认证。,ajax,node.js,express,cookies,koa,Ajax,Node.js,Express,Cookies,Koa,因此,基本上,当用户登录时,我将jwt令牌(已签名)设置到用户的浏览器cookie,它似乎工作正常,如下所示(Chrome cookie设置): (www.localhost.com而不是localhost是因为我编辑了我的主机文件,但这对设置/获取cookie没有影响) 然而,问题是当我向本地膝关节炎服务器发送POST请求时,JWT cookie未定义。我要做的只是验证令牌: routes.js 这里,this.cookies.get(“jwt”)返回未定义的。POST请求使用带有“wi

因此,基本上,当用户登录时,我将jwt令牌(已签名)设置到用户的浏览器cookie,它似乎工作正常,如下所示(Chrome cookie设置):


(www.localhost.com而不是localhost是因为我编辑了我的主机文件,但这对设置/获取cookie没有影响)

然而,问题是当我向本地膝关节炎服务器发送POST请求时,JWT cookie未定义。我要做的只是验证令牌:

routes.js 这里,this.cookies.get(“jwt”)返回未定义的。POST请求使用带有“withCredentials:true”标头和有效CSRF令牌的AXIOS库发送:


authenticate.js 有人能帮我找出为什么this.cookies.get无法从简单的POST请求中获取cookie吗?我只是在本地主机上发帖,所以我相信这不是CORS的问题

更奇怪的是,当我检查我的chrome开发者工具时,“jwt”和“jwt.sig”标记成功地包含在请求头中





任何帮助都将不胜感激



更新:设置cookie
if!(jwt)
如果(!jwt)
?@Vohuman感谢您捕捉到这一点,但这只是一个打字错误。当我调试我的节点js服务器时,我的调试程序中的“jwt”是“未定义”的。您的应用程序中是否启用了
cookie解析器
中间件?具体来说,在你的路由器之前?类似于代码> app。使用(CueIGPARSUR)()@ RoFLMyGGO,根据膝关节炎官方文档,似乎不需要像Express那样的CuffIEPARSER。如果你在膝关节炎上下文之外直接在原始节点中(在请求中运行控制台.log(这个.qq.Health.Cookie)),你能看到任何cookies吗?
const Router = require("koa-router");

const router = new Router();
router.post(`api/authenticate`, function* () {
    const jwt = this.cookies.get("jwt", { signed: true });   //jwt is undefined!!
    if (!jwt)
        this.throw("Invalid or expired token!");

    this.status = 200;
});
//...
app.use(router.routes());
app.use(router.allowedMethods());
axios.post("api/authenticate", {}, {
    headers: {
        "X-Requested-With": "XMLHttpRequest",
        "X-CSRF-Token": "A VALID CSRF TOKEN GENERATED BY SERVER",
        "Content-Type": "application/json",
    },
    withCredentials: true,
});
//...
this.cookies.set("jwt", "SOME JWT GENERATED BY SERVER", {
                    httpOnly: true,
                    signed: true,
                });
//...