앱 브릿지 토큰 요청 및 로그아웃 기능 추가

- requestToken 함수 구현 및 토큰 저장 로직 추가
- 토큰 null 체크 및 자동 로그아웃 처리
- 환경 변수 및 빌드 설정 업데이트

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Jay Sheen
2025-09-17 16:32:30 +09:00
parent 56ef85e3f3
commit 90ed6b8ac9
8 changed files with 68 additions and 13 deletions

View File

@@ -21,7 +21,7 @@ import {
export const HomePage = () => {
const { callLogin } = useUserInfo();
const { openBiometricRegistrationPopup } = useAppBridge();
const { isNativeEnvironment, openBiometricRegistrationPopup, requestToken, logout } = useAppBridge();
useSetHeaderTitle('');
useSetHeaderType(HeaderType.Home);
useSetFooterMode(true);
@@ -41,6 +41,51 @@ export const HomePage = () => {
};
*/
const handleRequestToken = useCallback(async () =>{
console.log('handleRequestToken');
alert('handleRequestToken');
requestToken()
.then((token) => {
if (!token) {
// 토큰이 null인 경우 로그아웃 처리
console.error('Token is null, performing logout');
useStore.getState().UserStore.resetUserInfo();
setLoginSuccess(false);
logout();
return;
}
console.log('token', token);
setLocalStorage(StorageKeys.Usrid, token.usrid);
setLocalStorage(StorageKeys.TokenType, token.tokenType);
setLocalStorage(StorageKeys.AccessToken, token.accessToken);
setLocalStorage(StorageKeys.RefreshToken, token.refreshToken);
setLocalStorage(StorageKeys.AccessTokenExpiresIn, token.accessTokenExpiresIn);
setLocalStorage(StorageKeys.RefreshTokenExpiresIn, token.refreshTokenExpiresIn);
setLocalStorage(StorageKeys.MenuGrants, token.menuGrants);
useStore.getState().UserStore.setUserInfo({
usrid: token.usrid,
tokenType: token.tokenType,
accessToken: token.accessToken,
refreshToken: token.refreshToken,
accessTokenExpiresIn: token.accessTokenExpiresIn,
refreshTokenExpiresIn: token.refreshTokenExpiresIn,
menuGrants: token.menuGrants,
});
setLoginSuccess(true);
})
.catch((error) => {
// 토큰 요청 실패 시 로그아웃 처리
console.error('Failed to request token:', error);
useStore.getState().UserStore.resetUserInfo();
setLoginSuccess(false);
logout();
});
}, []);
const userParmas = {
id: 'nictest00',
password: 'nictest00'
@@ -48,7 +93,7 @@ export const HomePage = () => {
const handleLogin = useCallback(async () =>{
//let appStart = getLocalStorage(StorageKeys.AppStart);
alert('handleLogin');
//if(!!appStart){
if(false){
useStore.getState().UserStore.resetUserInfo();
@@ -80,6 +125,7 @@ export const HomePage = () => {
}, []);
const checkBottomBannerOpen = () => {
console.log('checkBottomBannerOpen');
if(!!bannerToday){
bannerToday = bannerToday.toString();
}
@@ -92,7 +138,7 @@ export const HomePage = () => {
setAuthRegisterOn(true);
}
}).catch((e) => {
console.log('catch')
console.log('catch', e)
}).finally(() => {
console.log('finally')
@@ -102,7 +148,17 @@ export const HomePage = () => {
useEffect(() => {
handleLogin();
// handleRequestToken();
if (isNativeEnvironment) {
alert('isNativeEnvironment');
console.log('isNativeEnvironment');
handleRequestToken();
} else {
alert('not isNativeEnvironment');
console.log('not isNativeEnvironment');
handleLogin();
}
checkBottomBannerOpen();
checkAuthRegisterOpen();
}, []);
@@ -133,7 +189,7 @@ export const HomePage = () => {
<div className="tab-content blue">
<div className="tab-pane dashboard active">
<FavoriteWrapper></FavoriteWrapper>
{ !!loginSuccess &&
{ loginSuccess &&
<DayStatusBox></DayStatusBox>
}
</div>