-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat : useLogin 커스텀훅으로 만들기 * feat : useLogout 커스텀훅으로 만들기 * refactor : 타입명 수정 * refactor : 불필요한 코드 줄이기 * refactor : useLogin커스텀훅으로 교체 * feat : useLoginMuation추상화 * feat : 로그인 및 토큰 설정 비동기 처리 * feat : 토큰 제거 후 로그아웃 * feat : RN에서 메시지 수신 커스텀 훅으로 뺴기 * feat : 로그인 시 토큰 전송
- Loading branch information
Showing
13 changed files
with
121 additions
and
100 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,14 @@ | ||
'use client'; | ||
import { SENTRY_DSN } from '@/constants'; | ||
import useDisableScrollBounce from '@/hooks/useDisableScrollBounce'; | ||
import { useEasterEgg } from '@/hooks/useEasterEgg'; | ||
import useListenMessageToReactNative from '@/hooks/useListenMessageToReactNative'; | ||
import { useSentry } from '@/hooks/useSentry'; | ||
|
||
export default function Step4Layout({ children }: { children: React.ReactNode }) { | ||
export default function Template({ children }: { children: React.ReactNode }) { | ||
useEasterEgg(); | ||
useDisableScrollBounce(); | ||
|
||
useSentry({ | ||
dsn: SENTRY_DSN, | ||
allowUrls: ['https://gloddy.vercel.app'], | ||
}); | ||
useSentry(); | ||
useListenMessageToReactNative(); | ||
|
||
return children; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
import sendMessageToReactNative from '../../utils/sendMessageToReactNative'; | ||
import useAppRouter from '../useAppRouter'; | ||
import { setTokenAtCookie } from '@/utils/auth/tokenController'; | ||
|
||
interface LoginProps { | ||
accessToken: string; | ||
refreshToken: string; | ||
userId: number; | ||
} | ||
export default function useLogin() { | ||
const { refresh, replace } = useAppRouter(); | ||
|
||
const login = async ({ accessToken, refreshToken, userId }: LoginProps) => { | ||
await setTokenAtCookie({ accessToken, refreshToken, userId }); | ||
sendMessageToReactNative({ type: 'AUTH', data: 'LOG_IN' }); | ||
sendMessageToReactNative({ | ||
type: 'TOKEN', | ||
data: { | ||
accessToken, | ||
refreshToken, | ||
userId, | ||
}, | ||
}); | ||
refresh(); | ||
replace('/grouping'); | ||
}; | ||
|
||
return { login }; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
import { removeToken } from '@/utils/auth/tokenController'; | ||
import sendMessageToReactNative from '@/utils/sendMessageToReactNative'; | ||
import { useRouter } from 'next/navigation'; | ||
|
||
export default function useLogout() { | ||
const router = useRouter(); | ||
|
||
const logout = () => { | ||
router.push('/join'); | ||
removeToken(); | ||
sendMessageToReactNative({ type: 'AUTH', data: 'LOG_OUT' }); | ||
}; | ||
|
||
return { logout }; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
import { useDidMount } from './common/useDidMount'; | ||
import { postFCMToken } from '@/apis/notifications'; | ||
import { setTokenAtCookie } from '@/utils/auth/tokenController'; | ||
import { getIsApp } from '@/utils/getIsApp'; | ||
|
||
export default function useListenMessageToReactNative() { | ||
const isapp = getIsApp(); | ||
useDidMount(() => { | ||
if (!isapp) return; | ||
const listener = async (event: any) => { | ||
const { type, data } = JSON.parse(event.data); | ||
alert('test'); | ||
switch (type) { | ||
case 'FCM_TOKEN': | ||
postFCMToken({ token: data }); | ||
break; | ||
case 'TOKEN': { | ||
const { accessToken, refreshToken, userId } = data; | ||
setTokenAtCookie({ accessToken, refreshToken, userId }); | ||
break; | ||
} | ||
} | ||
}; | ||
|
||
document.addEventListener('message', listener); | ||
window.addEventListener('message', listener); | ||
return () => { | ||
document.removeEventListener('message', listener); | ||
window.removeEventListener('message', listener); | ||
}; | ||
}); | ||
} |
Oops, something went wrong.