Skip to main content

UseOauthPopupCallback()

OAuth 팝업 콜백을 처리하는 React Hook입니다. 이 Hook은 OAuth 인증 후 팝업에서 사용됩니다.

Signature

useOauthPopupCallback: <State>(cb?: useOauthCallbackParams<PopupResponse<State>, PopupResponse<State>>) => {
data: OauthResponse<State> | null;
isLoading: boolean;
closePopup: (extra?: any) => void;
}

Parameters

Parameter

Type

Description

cb

useOauthCallbackParams<PopupResponse<State>, PopupResponse<State>>

(Optional)

Returns

{ data: OauthResponse<State> | null; isLoading: boolean; closePopup: (extra?: any) => void; }

OAuth 응답 데이터, 로딩 상태, 팝업을 닫는 함수를 반환합니다.

Example

// pages/login.tsx (parents window)

const kakao = new Kakao(ENV.CLIENT_ID)
const Login = () => {
const { data } = useOauthPopupListener()
console.log(data, data.state.returnUrl, data.extra) // { code: '...', state: { returnUrl: '/my', type: 'kakao' }, extra: 'hello parents' }

<KakaoButton
onClick={() =>
kakao.loginToPopup({
redirect_uri: `${window.origin}/social/callback`,
state: {
returnUrl: '/my',
type: 'kakao',
},
})
}
/>
}

// pages/social/callback.tsx (popup window)

const { data, isLoading } = useOauthPopupCallback<{type: string; returnUrl:string}>({
onSuccess: (response) => {
console.log(response.state.returnUrl)
response.closePopup({ extra: 'hello parents' })
},
})