[apollo.ts]
export const token = localStorage.getItem('LOCALSTROAGE_TOKEN');
const tokenExist = Boolean(token)
export const isLoggedInVar = makeVar(tokenExist) // 전역 사용
export const client = new ApolloClient({
link: splitLink,
cache: new InMemoryCache({
addTypename: false,
typePolicies: {
Query: {
fields: {
isLoggedIn: {
read() {
return isLoggedInVar();
}
},
token: {
read() {
return authTokenVar();
}
},
}
}
}
})
});
- 위처럼 application의 local storgae안에 token이 있는지 여부에 따라 isLoggedInVar를 true/false 설정해두면 웹을 재부팅할경우에도 웹브라우저안에서 계속 사용이 가능합니다.
[app.jsx]
const isLoggedIn = useReactiveVar(isLoggedInVar)
return (
isLoggedIn ? <login /> : <logout />
)
- 위처럼 사용이 가능합니다.