graphql - Apollo resetStore is not working in Angular client -


i trying integrate authorization token @ client side. passing token in middleware. when user logout reset store , new token. when send new request still sending old token(cached)

here code app.module.ts

const networkinterface = createnetworkinterface({   uri: "http://localhost:3000/graphql" });  networkinterface.use([   {     applymiddleware(req, next) {       if (!req.options.headers) {         req.options.headers = {}; // create header object if needed.       }        req.options.headers.authorization = localstorage.getitem(auth_token);       next();     }   } ]);  export function provideclient(): apolloclient {   return new apolloclient({     networkinterface,     dataidfromobject: (o: any) => `${o.__typename}-${o.id},`   }); } 

when logout have code

localstorage.removeitem(auth_token); this._apollo.getclient().resetstore();  

then when make request still taking old token in request headers.

how can update new token?

i might change middleware this:

networkinterface.use([{     applymiddleware(req, next) {         if (!req.options.headers) req.options.headers = {}         const token = localstorage.getitem('token')         req.options.headers.authorization = token ? token : null         next()     } }]) 

notice ternary operator in there, token ? token : null. ensure auth header cannot sent unless app knows of token. if client still sending it, token not being removed properly.

you try quick test also: after logging out, press f12 , type browser console: localstorage , see if token still in there.

i can't tell code, looks have variable called auth_token returns string of 'token' or whatever key use. want explicitly mention removing token key, not value.

add token: localstorage.setitem('token', 'e47nes45nysde5nue5nu')

remove token: localstorage.removeitem('token')

if code this:

const auth_token = 'e47nes45nysde5nue5nu' localstorage.removeitem(auth_token) 

then, why still making queries auth token. don't think generates errors in console if doesn't find matching key remove localstorage.


Comments

Popular posts from this blog

ios - MKAnnotationView layer is not of expected type: MKLayer -

ZeroMQ on Windows, with Qt Creator -

unity3d - Unity SceneManager.LoadScene quits application -