title: Updating authorization header in websocket graphql
body: <p>I am trying to implement authentication in Graphql using firebase and websockets (on react native).</p>
  
  <p>The client uses the firebase to authenticate and gets a token. It then sends the token to the server over a websocket client, which validates the user using the admin sdk. </p>
  
  <p>I am facing two problems:</p>
  
  <ol>
  <li><p>When the app boots up, it establishes a ws connection which by that time, it has no authorization header. The user gets a token after a while using firebase.</p></li>
  <li><p>The token expires after some time, so after a while I need to update the authorization header in the websocket connection, and re-run the query, mutation or subscription which got rejected because of the expired token.</p></li>
  </ol>
  
  <p>Is there a way to update the authorization header and re-run the query?</p>
  
  <p>Do I need to close the previous connection and open a new one using the new token in the authorization header? How is this done?</p>
  
  <p>I am using apollo-server, apollo-client, apollo-link, subscriptions-transport-ws.</p>