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

ZeroMQ on Windows, with Qt Creator -

unity3d - Unity SceneManager.LoadScene quits application -

python - Error while using APScheduler: 'NoneType' object has no attribute 'now' -