Express doesn't set a cookie

后端 未结 10 1609
花落未央
花落未央 2020-12-14 01:45

I have problem with setting a cookies via express. I\'m using Este.js dev stack and I try to set a cookie in API auth /login route. Here is the cod

10条回答
  •  难免孤独
    2020-12-14 02:14

    There is no problem to set "httpOnly" to true in a cookie.

    I am using "request-promise" for requests and the client is a "React" app, but the technology doesn't matter. The request is:

        var options = {
            uri: 'http://localhost:4000/some-route',
            method: 'POST',
            withCredentials: true
        }
    
        request(options)
            .then(function (response) {
                console.log(response)
            })
            .catch(function (err) {
                console.log(err)
            });
    

    The response on the node.js (express) server is:

       var token=JSON.stringify({
      "token":"some token content"
    });
    res.header('Access-Control-Allow-Origin', "http://127.0.0.1:3000");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    res.header( 'Access-Control-Allow-Credentials',true);
    var date = new Date();
    var tokenExpire = date.setTime(date.getTime() + (360 * 1000));
    res.status(201)
       .cookie('token', token, { maxAge: tokenExpire, httpOnly: true })
       .send();
    

    The client make a request, the server set the cookie , the browser (client) receive it (you can see it in "Application tab on the dev tools") and then I again launch a request to the server and the cookie is located in the request: "req.headers.cookie" so accessible by the server for verifying.

提交回复
热议问题