frontend/hooks/useLoginWithProvider.ts (view raw)
1import useAuthStore from '../stores/useAuthStore';
2
3const useLoginWithProvider = () => {
4 const setToken = useAuthStore(s => s.setToken);
5 const setUser = useAuthStore(s => s.setUser);
6
7 const loginWithProvider = async (provider: string, search: string) => {
8 const resultRaw = await fetch(`/auth/${provider}/callback${search}`);
9 const result = await resultRaw.json();
10 if (result.hasOwnProperty('error')) throw result;
11 setToken(result.jwt);
12 setUser(result.user);
13 return result;
14 };
15
16 return {loginWithProvider};
17};
18
19export default useLoginWithProvider;