login test

This commit is contained in:
focp212@naver.com
2025-10-13 17:46:10 +09:00
parent 6d4f2c749e
commit e9758f2240
3 changed files with 67 additions and 124 deletions

View File

@@ -1,49 +1,69 @@
import { LoginParams } from '@/entities/user/model/types';
import { LoginParams, LoginResponse } from '@/entities/user/model/types';
import { StorageKeys } from '@/shared/constants/local-storage';
import { setLocalStorage } from '@/shared/lib/web-view-bridge';
import { useLoginMutation } from '@/entities/user/api/use-login-mutation';
import { useStore } from '~/shared/model/store';
import { useAppBridge } from '@/hooks';
export const useUserInfo = () => {
const { mutateAsync: login } = useLoginMutation();
const callLogin = async (params: LoginParams) => {
const {
isNativeEnvironment,
requestToken,
logout
} = useAppBridge();
const callLogin = async (params?: LoginParams) => {
try{
useStore.getState().UserStore.resetUserInfo();
const result = await login(params);
if(result.requires2FA){
// 2차인증 필요
}
else{
const {
tokenType,
accessToken,
refreshToken,
accessTokenExpiresIn,
refreshTokenExpiresIn,
menuGrants,
clientAddressIP,
requires2FA
} = result;
setLocalStorage(StorageKeys.TokenType, tokenType);
setLocalStorage(StorageKeys.AccessToken, accessToken);
setLocalStorage(StorageKeys.RefreshToken, refreshToken);
setLocalStorage(StorageKeys.AccessTokenExpiresIn, accessTokenExpiresIn);
setLocalStorage(StorageKeys.RefreshTokenExpiresIn, refreshTokenExpiresIn);
setLocalStorage(StorageKeys.MenuGrants, menuGrants);
setLocalStorage(StorageKeys.Usrid, params.id);
setLocalStorage(StorageKeys.ClientAddressIP, clientAddressIP);
setLocalStorage(StorageKeys.Requires2FA, requires2FA);
if(isNativeEnvironment){
const result: LoginResponse = await requestToken();
if(!result) {
// 토큰이 null인 경우 로그아웃 처리
console.error('Token is null, performing logout');
useStore.getState().UserStore.resetUserInfo();
logout();
return;
}
setLocalStorage(StorageKeys.TokenType, result.tokenType);
setLocalStorage(StorageKeys.AccessToken, result.accessToken);
setLocalStorage(StorageKeys.RefreshToken, result.refreshToken);
setLocalStorage(StorageKeys.AccessTokenExpiresIn, result.accessTokenExpiresIn);
setLocalStorage(StorageKeys.RefreshTokenExpiresIn, result.refreshTokenExpiresIn);
setLocalStorage(StorageKeys.MenuGrants, result.menuGrants);
setLocalStorage(StorageKeys.ClientAddressIP, result.clientAddressIP);
setLocalStorage(StorageKeys.Requires2FA, result.requires2FA);
setLocalStorage(StorageKeys.Usrid, result.usrid);
useStore.getState().UserStore.setUserInfo({
...result,
usrid: params.id
...result
});
}
else{
// 개발용 ...
if(params){
const result = await login(params);
setLocalStorage(StorageKeys.TokenType, result.tokenType);
setLocalStorage(StorageKeys.AccessToken, result.accessToken);
setLocalStorage(StorageKeys.RefreshToken, result.refreshToken);
setLocalStorage(StorageKeys.AccessTokenExpiresIn, result.accessTokenExpiresIn);
setLocalStorage(StorageKeys.RefreshTokenExpiresIn, result.refreshTokenExpiresIn);
setLocalStorage(StorageKeys.MenuGrants, result.menuGrants);
setLocalStorage(StorageKeys.ClientAddressIP, result.clientAddressIP);
setLocalStorage(StorageKeys.Requires2FA, result.requires2FA);
setLocalStorage(StorageKeys.Usrid, params.id);
useStore.getState().UserStore.setUserInfo({
...result,
usrid: params.id
});
}
}
}
catch(e: any){
catch(error: any){
console.error('Failed to request token:', error);
useStore.getState().UserStore.resetUserInfo();
logout();
}
};
return {