Search code examples
javascriptjqueryexpressjwtexpress-jwt

How to send a token with an AJAX request from jQuery


I use express-jwt and create my token via jQuery and save it in my localStorage with:

$.ajax({
  url: "http://localhost:8080/login",
  type: 'POST',
  data: formData,
  error : function(err) {
    console.log('Error!', err)
  },
  success: function(data) {
    console.log('Success!')
    localStorage.setItem('token', data.id_token);
  }
});

I have a protected route in my backend like:

app.get('/upload',jwt({secret: config.secret}), function(req, res) {
  res.sendFile(path.join(__dirname + '/upload.html'));
});

How can I send the token from localStorage with the request header?


Solution

  • You can set the headers in a $.ajax request:

    $.ajax({
      url: "http://localhost:8080/login",
      type: 'GET',
      // Fetch the stored token from localStorage and set in the header
      headers: {"Authorization": "Bearer " + localStorage.getItem('token')}
    });