title: read data from cache graphql apollo 2.0
body: <p>I am using apollo 2.0. I first make <code>authUser</code> <code>graphql</code> call to server for given username and password, which generate <code>jwt</code> token and return back token in response. I do see that on successful login, <code>User</code> is stored in <code>cache</code> as <code>id</code> key value. 
  I do have <code>Buy</code> button where I need to make <code>validateSSOSession</code> for given <code>token</code>. For <code>validateSSOSession</code>, I need to read <code>token</code> from cache.</p>
  
  <p>I gone through <code>client.readQuery</code>, <code>client.fragementQuery</code> but both are not applicable for my case bcz  <code>client.readQuery</code> expect that same query had been called before to server and I should have same variable. Since I don't have <code>username/password</code> therefore I can't call <code>client.readQuery</code>. Similarly, <code>client.fragementQuery</code> expect <code>id</code> as mandatory. Since I don't have <code>id</code> therefore can't use it.</p>
  
  <p>For time being, I am simply iterating <code>data</code> from <code>cache</code> and filtering for <code>User</code> as below.</p>
  
  <pre><code>const data = client.cache.data.data;
    const users = _.values(data).filter(obj=&gt;(obj.__typename==='User' &amp;&amp; obj.token));
    const token = users[0].token;
  
    // Make graphql call to validate sso
    const { data } = await client.query({
      query: GET_SSO_USER,
      variables: { token }
    });
  
    const authenticated = data.getSingleSignOnUser.user.userId;
  </code></pre>
  
  <p>Is there alternate easy way to query <code>User</code> from cache for given condition?</p>