cookieshttpresponsepaw-app

macOS Paw - Parse response cookies for request header


How do I parse a response cookie and sent back a specific value into a request header?

I'm making a request: it's sending back a token in a session cookie (token=longstrong). I need to grab that cookie, parse out token, and send back the value in a x-token: request header for following requests.

Paw is only giving me the option to send the cookie (raw).

How can I parse the response cookie to send back the value of $.token (json pseudo-code)?


Solution

  • A late reply, sorry!

    This might help (from How do i pick specific cookies?):

    Use a Custom dynamic value (right click on the field, and pick Extensions > Custom), instead, and use the following JavaScript code snippet:

    function evaluate(context){
      // Set here the cookies you'd like to return
      var wantedCookies = ["datr", "reg_fb_ref"];
    
      var regex = /^(\w+)\=([^;\s]+)/g;
    
      // Request
      // Uses here the current request, you can use getRequestByName("name of the request") instead
      var request = context.getCurrentRequest();
    
      // Get response cookies
      var cookies = request.getLastExchange().getResponseHeaderByName("Set-Cookie").split(", ");
      var filteredCookies = [];
    
      for (var i in cookies) {
        var cookie = cookies[i];
        var match = regex.exec(cookie);
        if (match && wantedCookies.indexOf(match[1]) >= 0) {
          filteredCookies.push(match[0]);
        }
      }
    
      return filteredCookies.join(",");
    };
    

    That basically parses manually the response cookies, and returns the ones you need.


    This other question might help: Routes using cookie authentication from previous version of Paw no longer work on new version