변경 파일 목록
총 23개
DesignEditor (5)
_contents.htmlfront/intro/adult_guest/_contents.htmlfront/intro/member/_contents.htmlfront/member/join_method/_contents.htmlfront/member/login/_contents.htmlfront/mypage/my_page_password/Controller (16)
MobileConfigController.phpAdmin/Mobile/AdultController.phpFront/Intro/MemberController.phpFront/Intro/JoinCallbackController.phpFront/Member/Facebook/LoginCallbackController.phpFront/Member/Facebook/GoogleLoginController.phpFront/Member/Google/KakaoLoginController.phpFront/Member/Kakao/LoginController.phpFront/Member/LogoutController.phpFront/Member/MemberPsController.phpFront/Member/NaverLoginController.phpFront/Member/Naver/WakeCompleteController.phpFront/Member/MyPagePasswordController.phpFront/Mypage/AdultController.phpMobile/Intro/LoginController.phpMobile/Member/LogoutController.phpMobile/Member/변경 파일 코드
추가삭제
변경 전design_skin_list.php
| }; | |
| } | |
| // 적응형 → 반응형 (마이앱 사용 중이면 차단) | |
| if (isCurrentAdaptive && isTargetResponsive && isMyappInstalled && isMyappReleased) { | |
| return { | |
| message: '현재 스킨 유형 변경이 잠시 제한되어 있습니다.', | |
| subMessage: '<p class="layer-description--sub">' | |
| + '안정적인 마이앱 서비스 운영을 위해 현재 스킨 유형 변경이 잠시 제한되어 있습니다.<br>' | |
| + '마이앱 이용 중인 사장님께 더 편리하고 자유로운 디자인 환경을 제공하고자 기능을 고도화하고 있습니다.<br>' | |
| + '곧 업데이트를 통해 찾아뵐 예정이니, 잠시만 기다려 주시면 감사하겠습니다.' | |
| + '</p>', | |
| onConfirm: 'block' | |
| }; | |
| } | |
| // 적응형 → 반응형 (모바일샵 사용 중) | |
| if (isCurrentAdaptive && isTargetResponsive && mobileShopFlValue === 'y') { | |
| return { | |
| }, | |
| skinPublish: (params) => { | |
| const { skinName, skinType, skinCode } = params; | |
| const config = Utils.getSkinPublishConfig( | |
| currentSkinType, | |
| skinType, | |
| mobileShopFl, | |
| skinName, | |
| ); | |
| NCDSConfirm({ | |
| message: config.message, | |
| subMessage: config.subMessage | |
| }).then(function(result) { | |
| if(!result) return; | |
| // 스킨 변경 폼 제출 함수 | |
| const submitSkinChangeForm = () => { | |
| const form = document.createElement('form'); | |
| form.action = 'design_skin_list_ps.php'; | |
| form.method = 'post'; | |
| form.target = 'ifrmProcess'; | |
| const sno = '<?php echo $mallSno; ?>'; | |
| const formData = { | |
| mode: 'skinChange', | |
| skinType: skinType, | |
| skinUse: 'Live', | |
| [`${skinType}Skin`]: skinCode, | |
| sno: sno | |
| }; | |
| Utils.appendFormData(form, formData); | |
| document.body.appendChild(form); | |
| form.submit(); | |
| document.body.removeChild(form); | |
| }; | |
| switch (config.onConfirm) { | |
| case 'block': | |
| break; | |
| case 'redirect': | |
| // 모바일샵 설정 페이지로 이동만 (스킨 변경 없음) | |
| location.href = '/mobile/mobile_config.php'; | |
| break; | |
| case 'publish': | |
| default: | |
| // 스킨 변경 (리다이렉트는 백엔드에서 자동 처리) | |
| submitSkinChangeForm(); | |
| break; | |
| } | |
| }) | |
| } | |
| } | |
변경 후design_skin_list.php
| }; | |
| } | |
| // 적응형 → 반응형 (모바일샵 사용 중) | |
| if (isCurrentAdaptive && isTargetResponsive && mobileShopFlValue === 'y') { | |
| return { | |
| }, | |
| skinPublish: (params) => { | |
| const { skinName, skinType, skinCode } = params; | |
| // 기존 게시 흐름 | |
| const proceedWithPublish = () => { | |
| const config = Utils.getSkinPublishConfig( | |
| currentSkinType, | |
| skinType, | |
| mobileShopFl, | |
| skinName, | |
| ); | |
| NCDSConfirm({ | |
| message: config.message, | |
| subMessage: config.subMessage | |
| }).then(function(result) { | |
| if(!result) return; | |
| // 스킨 변경 폼 제출 함수 | |
| const submitSkinChangeForm = () => { | |
| const form = document.createElement('form'); | |
| form.action = 'design_skin_list_ps.php'; | |
| form.method = 'post'; | |
| form.target = 'ifrmProcess'; | |
| const sno = '<?php echo $mallSno; ?>'; | |
| const formData = { | |
| mode: 'skinChange', | |
| skinType: skinType, | |
| skinUse: 'Live', | |
| [`${skinType}Skin`]: skinCode, | |
| sno: sno | |
| }; | |
| Utils.appendFormData(form, formData); | |
| document.body.appendChild(form); | |
| form.submit(); | |
| document.body.removeChild(form); | |
| }; | |
| switch (config.onConfirm) { | |
| case 'redirect': | |
| // 모바일샵 설정 페이지로 이동만 (스킨 변경 없음) | |
| location.href = '/mobile/mobile_config.php'; | |
| break; | |
| case 'publish': | |
| default: | |
| // 스킨 변경 (리다이렉트는 백엔드에서 자동 처리) | |
| submitSkinChangeForm(); | |
| break; | |
| } | |
| }); | |
| }; | |
| // 마이앱 사전 체크: 적응형↔반응형 스킨 유형 전환 + 마이앱 사용 중 | |
| if (currentSkinType !== skinType && isMyappInstalled && isMyappReleased) { | |
| NCDSConfirm({ | |
| message: '마이앱(MyApp) 서비스 운영에 주의가 필요합니다.', | |
| subMessage: '<p class="layer-description--sub">' | |
| + '마이앱 서비스 운영 중 스킨 유형을 변경할 경우, 서비스 운영에 다음과 같은 문제가 발생할 수 있습니다.' | |
| + '<br><br>' | |
| + '1. 사용자의 기존 앱 로그인 정보 및 세션이 유지되지 않습니다.<br>' | |
| + '2. 스킨 변경 시 도메인 정보 변경으로 인해 앱 내 페이지 이동 시 404 오류가 발생할 수 있습니다.<br>' | |
| + '3. 변경된 화면 구성에 따라 앱 스토어(Apple/Google) 재심사 및 승인이 필요합니다.' | |
| + '<br><br>' | |
| + '위 내용을 확인하였으며, 스킨 변경을 진행하시겠습니까?' | |
| + '</p>', | |
| btnText: { | |
| cancelLabel: '취소', | |
| confirmLabel: '동의 후 변경하기' | |
| } | |
| }).then(function(agreed) { | |
| if (!agreed) return; | |
| proceedWithPublish(); | |
| }); | |
| return; | |
| } | |
| proceedWithPublish(); | |
| } | |
| } | |
변경 전mobile_config.php
| $(document).ready(function(){ | |
| const currentSkinType = '<?= $currentSkinType ?? 'adaptive' ?>'; | |
| const initialMobileShopFl = '<?= $data['mobileShopFl'] ?? 'n' ?>'; | |
| $("#frmMobileShop").validate({ | |
| submitHandler: function (form) { | |
변경 후mobile_config.php
| $(document).ready(function(){ | |
| const currentSkinType = '<?= $currentSkinType ?? 'adaptive' ?>'; | |
| const initialMobileShopFl = '<?= $data['mobileShopFl'] ?? 'n' ?>'; | |
| const isMyappInstalled = <?= json_encode($isMyappInstalled ?? false) ?>; | |
| const isMyappReleased = <?= json_encode($isMyappReleased ?? false) ?>; | |
| // 마이앱 사용 중 + 적응형 스킨 사용 중 + 모바일샵 사용안함인 경우 안내 얼럿 | |
| if (isMyappInstalled && isMyappReleased && currentSkinType === 'adaptive' && initialMobileShopFl === 'n') { | |
| NCDSAlert({ | |
| message: '모바일샵을 \'사용함\'으로 변경해 주세요.', | |
| subMessage: '현재 적응형 스킨이 적용된 상태에서 모바일샵이 \'사용안함\'으로 설정되어 있습니다. 이 설정에서는 마이앱 실행 시 사용자 랜딩이 정상적으로 이루어지지 않을 수 있습니다. 원활한 서비스 제공을 위해 모바일샵을 \'사용함\'으로 변경해 주세요.', | |
| iconType: 'warning' | |
| }); | |
| } | |
| $("#frmMobileShop").validate({ | |
| submitHandler: function (form) { | |
변경 전_contents.html
| </a> | |
| <!--{/}--> | |
| <!--{? useGoogleLogin}--> | |
| <a class="js_btn_google_login" href="#" data-google-type="login" data-return-url="{=returnUrl}"> <img src="\{=c.PATH_DESIGN_EDITOR_GD_SHARE}img/etc/pc_google.png" alt="{=__('구글')}{=__('아이디 로그인')}"></a> | |
| <!--{/}--> | |
| </div> | |
| <!--{/}--> | |
변경 후_contents.html
| </a> | |
| <!--{/}--> | |
| <!--{? useGoogleLogin}--> | |
| <a class="js_btn_google_login" href="#" data-google-type="login" data-return-url="{=googleReturnUrl}"> <img src="\{=c.PATH_DESIGN_EDITOR_GD_SHARE}img/etc/pc_google.png" alt="{=__('구글')}{=__('아이디 로그인')}"></a> | |
| <!--{/}--> | |
| </div> | |
| <!--{/}--> | |
변경 전_contents.html
| </a> | |
| <!--{/}--> | |
| <!--{? useGoogleLogin}--> | |
| <a class="js_btn_google_login" data-google-type="login" data-return-url="{=returnUrl}" href="#"> <img src="\{=c.PATH_DESIGN_EDITOR_GD_SHARE}img/etc/pc_google.png" alt="{=__('구글')}{=__('아이디 로그인')}"></a> | |
| <!--{/}--> | |
| </div> | |
| <div class="btn_login_box"> | |
변경 후_contents.html
| </a> | |
| <!--{/}--> | |
| <!--{? useGoogleLogin}--> | |
| <a class="js_btn_google_login" data-google-type="login" data-return-url="{=googleReturnUrl}" href="#"> <img src="\{=c.PATH_DESIGN_EDITOR_GD_SHARE}img/etc/pc_google.png" alt="{=__('구글')}{=__('아이디 로그인')}"></a> | |
| <!--{/}--> | |
| </div> | |
| <div class="btn_login_box"> | |
변경 전_contents.html
| </a> | |
| <!--{/}--> | |
| <!--{? useGoogleLogin}--> | |
| <a href="#" class="btn_google_login js_btn_google_login" data-google-type="join_method" data-return-url="{=returnUrl}"><img src="\{=c.PATH_DESIGN_EDITOR_GD_SHARE}img/etc/pc_google_join.png" alt="{=__('구글')} {=__('아이디 회원가입')}"></a> | |
| <!--{/}--> | |
| </div> | |
변경 후_contents.html
| </a> | |
| <!--{/}--> | |
| <!--{? useGoogleLogin}--> | |
| <a href="#" class="btn_google_login js_btn_google_login" data-google-type="join_method" data-return-url="{=googleUrl}"><img src="\{=c.PATH_DESIGN_EDITOR_GD_SHARE}img/etc/pc_google_join.png" alt="{=__('구글')} {=__('아이디 회원가입')}"></a> | |
| <!--{/}--> | |
| </div> | |
변경 전_contents.html
| </a> | |
| <!--{ / }--> | |
| <!--{ ? useGoogleLogin }--> | |
| <a href="#" class="btn_google_login js_btn_google_login" data-google-type="login" data-return-url="{=returnUrl}"> <img src="\{=c.PATH_DESIGN_EDITOR_GD_SHARE}img/etc/pc_google.png" alt="{=__('구글')} {=__('아이디 로그인')}"></a> | |
| <!--{ / }--> | |
| </div> | |
| <div class="btn_login_box"> | |
변경 후_contents.html
| </a> | |
| <!--{ / }--> | |
| <!--{ ? useGoogleLogin }--> | |
| <a href="#" class="btn_google_login js_btn_google_login" data-google-type="login" data-return-url="{=googleReturnUrl}"> <img src="\{=c.PATH_DESIGN_EDITOR_GD_SHARE}img/etc/pc_google.png" alt="{=__('구글')} {=__('아이디 로그인')}"></a> | |
| <!--{ / }--> | |
| </div> | |
| <div class="btn_login_box"> | |
변경 전_contents.html
| </div> | |
| <div class="btn_center_box"> | |
| <a class="btn_pw_cancel js_btn_back"><em>{=__('취소')}</em></a> | |
| <button type="button" data-return-url="../mypage/my_page.php" class="btn_pw_certify js_btn_kakao_login" data-kakao-type="{=kakaoType}"><em>{=__('인증하기')}</em></button> | |
| </div> | |
| <!--{:useWonder}--> | |
| <div class="sns_cont"> | |
| </div> | |
| <div class="btn_center_box"> | |
| <a class="btn_pw_cancel js_btn_back"><em>{=__('취소')}</em></a> | |
| <button type="button" data-return-url="../mypage/my_page.php" class="btn_pw_certify js_btn_google_login" data-google-type="{=googleType}"><em>{=__('인증하기')}</em></button> | |
| </div> | |
| <!--{:}--> | |
| <form id="formFind"> | |
변경 후_contents.html
| </div> | |
| <div class="btn_center_box"> | |
| <a class="btn_pw_cancel js_btn_back"><em>{=__('취소')}</em></a> | |
| <button type="button" data-return-url="{=kakaoReturnUrl}" class="btn_pw_certify js_btn_kakao_login" data-kakao-type="{=kakaoType}"><em>{=__('인증하기')}</em></button> | |
| </div> | |
| <!--{:useWonder}--> | |
| <div class="sns_cont"> | |
| </div> | |
| <div class="btn_center_box"> | |
| <a class="btn_pw_cancel js_btn_back"><em>{=__('취소')}</em></a> | |
| <button type="button" data-return-url="{=googleReturnUrl}" class="btn_pw_certify js_btn_google_login" data-google-type="{=googleType}"><em>{=__('인증하기')}</em></button> | |
| </div> | |
| <!--{:}--> | |
| <form id="formFind"> | |
변경 전MobileConfigController.php
| use Framework\Enum\ExternalUrl; | |
| use Exception; | |
| use Origin\Enum\Design\DesignEditorSkinType; | |
| use Request; | |
| /** | |
| $designSkinConfig = gd_policy('design.skin'); | |
| $currentSkinType = $designSkinConfig['skinType'] ?? DesignEditorSkinType::ADAPTIVE->value; | |
| //--- 관리자 디자인 템플릿 | |
| $this->setData('data', $data); | |
| $this->setData('browserCheck', $browserCheck); | |
| $this->setData('checked', $checked); | |
| $this->setData('currentSkinType', $currentSkinType); | |
| } | |
| } | |
변경 후MobileConfigController.php
| use Framework\Enum\ExternalUrl; | |
| use Exception; | |
| use Origin\Enum\Design\DesignEditorSkinType; | |
| use Origin\Service\MyApp\MyappSettingService; | |
| use Request; | |
| /** | |
| $designSkinConfig = gd_policy('design.skin'); | |
| $currentSkinType = $designSkinConfig['skinType'] ?? DesignEditorSkinType::ADAPTIVE->value; | |
| // 마이앱 상태 조회 | |
| try { | |
| $myappSettingService = \App::getInstance(MyappSettingService::class); | |
| $myappStatus = $myappSettingService->getMyappStatus(); | |
| $isMyappInstalled = $myappStatus->isInstalled(); | |
| $isMyappReleased = $myappStatus->isReleased(); | |
| } catch (\Throwable $e) { | |
| $isMyappInstalled = false; | |
| $isMyappReleased = false; | |
| } | |
| //--- 관리자 디자인 템플릿 | |
| $this->setData('data', $data); | |
| $this->setData('browserCheck', $browserCheck); | |
| $this->setData('checked', $checked); | |
| $this->setData('currentSkinType', $currentSkinType); | |
| $this->setData('isMyappInstalled', $isMyappInstalled); | |
| $this->setData('isMyappReleased', $isMyappReleased); | |
| } | |
| } | |
변경 전AdultController.php
| use Framework\Debug\Exception\AlertOnlyException; | |
| use Globals; | |
| use Origin\Service\MyApp\MyappAuth; | |
| use Origin\Service\MyApp\MyappUtil; | |
| use Request; | |
| use Session; | |
| */ | |
| public function index() | |
| { | |
| $scripts = ['gd_payco.js']; | |
| try { | |
| /** @var \Bundle\Controller\Front\Controller $this */ | |
| $request = \App::getInstance('request'); | |
| $returnUrl = MemberUtil::getLoginReturnURL(); | |
| $siteLink = new SiteLink(); | |
| $this->setData('loginActionUrl', $siteLink->link('../member/member_ps.php', 'ssl')); | |
변경 후AdultController.php
| use Framework\Debug\Exception\AlertOnlyException; | |
| use Globals; | |
| use Origin\Service\MyApp\MyappAuth; | |
| use Origin\Service\MyApp\MyappBridge; | |
| use Origin\Service\MyApp\MyappUtil; | |
| use Request; | |
| use Session; | |
| */ | |
| public function index() | |
| { | |
| $request = \App::getInstance('request'); | |
| if ($request->isFromMyapp() && !MemberUtil::isLogin()) { | |
| $returnUrl = $request->get()->get('returnUrl', $request->getReferer()); | |
| if (!empty($returnUrl)) { | |
| $returnUrl = MyappUtil::getUri($returnUrl); | |
| } | |
| $isQuickLoginEnabled = MyappUtil::isQuickLoginEnabled(); | |
| \Logger::channel('myapp')->info("Myapp AdultController add loginView isQuickLoginEnabled: " . ($isQuickLoginEnabled ? 'true' : 'false')); | |
| $myappBridge = \App::load(MyappBridge::class); | |
| $loginViewScript = $myappBridge->loginView($returnUrl, 'ONLY_ADULT'); | |
| if ($isQuickLoginEnabled) { | |
| $this->js($loginViewScript); | |
| exit; | |
| } | |
| echo $myappBridge->wrapScriptTag($loginViewScript); | |
| } | |
| $scripts = ['gd_payco.js']; | |
| try { | |
| /** @var \Bundle\Controller\Front\Controller $this */ | |
| $returnUrl = MemberUtil::getLoginReturnURL(); | |
| $siteLink = new SiteLink(); | |
| $this->setData('loginActionUrl', $siteLink->link('../member/member_ps.php', 'ssl')); | |
변경 전MemberController.php
| use Component\Godo\GodoWonderServerApi; | |
| use Component\SiteLink\SiteLink; | |
| use Framework\Debug\Exception\AlertOnlyException; | |
| use Request; | |
| /** | |
| $request = \App::getInstance('request'); | |
| $logger = \App::getInstance('logger'); | |
| $scripts = ['gd_payco.js']; | |
| try { | |
| if ($request->request()->has('returnUrl')) { | |
| $facebook = new Facebook(); | |
| $scripts[] = 'gd_sns.js'; | |
| if ($snsLoginPolicy->useGodoAppId()) { | |
| $this->setData('facebookUrl', $facebook->getGodoLoginUrl($returnUrl)); | |
| } else { | |
| $this->setData('facebookUrl', $facebook->getLoginUrl($returnUrl)); | |
| } | |
| } | |
| $naverLoginPolicy = new NaverLoginPolicy(); | |
| $useNaver = $naverLoginPolicy->useNaverLogin(); | |
| $useGoogleLogin = $googlePolicy->useGoogleLogin(); | |
| if ($useGoogleLogin) { | |
| $scripts[] = 'gd_google.js'; | |
| } | |
| $this->setData('useGoogleLogin', $useGoogleLogin); | |
변경 후MemberController.php
| use Component\Godo\GodoWonderServerApi; | |
| use Component\SiteLink\SiteLink; | |
| use Framework\Debug\Exception\AlertOnlyException; | |
| use Origin\Service\MyApp\MyappAuth; | |
| use Origin\Service\MyApp\MyappBridge; | |
| use Origin\Service\MyApp\MyappUtil; | |
| use Request; | |
| /** | |
| $request = \App::getInstance('request'); | |
| $logger = \App::getInstance('logger'); | |
| if ($request->isFromMyapp() && !MemberUtil::isLogin()) { | |
| $isQuickLoginEnabled = MyappUtil::isQuickLoginEnabled(); | |
| \Logger::channel('myapp')->info("Myapp MemberController add loginView isQuickLoginEnabled: " . ($isQuickLoginEnabled ? 'true' : 'false')); | |
| $returnUrl = $request->getReferer(); | |
| $myappBridge = \App::load(MyappBridge::class); | |
| $loginViewScript = $myappBridge->loginView($returnUrl, 'ONLY_MEMBER', false, true); | |
| if ($isQuickLoginEnabled) { | |
| $this->js($loginViewScript); | |
| exit; | |
| } | |
| echo $myappBridge->wrapScriptTag($loginViewScript); | |
| } | |
| $scripts = ['gd_payco.js']; | |
| try { | |
| if ($request->request()->has('returnUrl')) { | |
| $facebook = new Facebook(); | |
| $scripts[] = 'gd_sns.js'; | |
| if ($snsLoginPolicy->useGodoAppId()) { | |
| $facebookUrl = $facebook->getGodoLoginUrl($returnUrl); | |
| } else { | |
| $facebookUrl = $facebook->getLoginUrl($returnUrl); | |
| } | |
| $userAgent = $request->server()->get('HTTP_USER_AGENT'); | |
| if ($request->isFromMyapp() && MyappUtil::isAndroid($userAgent)) { | |
| $tokenData = ['next' => $returnUrl]; | |
| $token = MyappUtil::encryptCustomTabToken($tokenData); | |
| $facebookUrl = MyappUtil::getCustomTabUrl('facebook', MyappAuth::CUSTOM_TAB_LOGIN_ACTIVE, $token); | |
| } | |
| $this->setData('facebookUrl', $facebookUrl); | |
| } | |
| $naverLoginPolicy = new NaverLoginPolicy(); | |
| $useNaver = $naverLoginPolicy->useNaverLogin(); | |
| $useGoogleLogin = $googlePolicy->useGoogleLogin(); | |
| if ($useGoogleLogin) { | |
| $scripts[] = 'gd_google.js'; | |
| $googleReturnUrl = urlencode($returnUrl); | |
| if ($request->isFromMyapp()) { | |
| $tokenData = ['next' => $returnUrl]; | |
| $token = MyappUtil::encryptCustomTabToken($tokenData); | |
| $googleReturnUrl = MyappUtil::getCustomTabUrl('google', MyappAuth::CUSTOM_TAB_LOGIN_ACTIVE, $token); | |
| } | |
| $this->setData('googleReturnUrl', $googleReturnUrl); | |
| } | |
| $this->setData('useGoogleLogin', $useGoogleLogin); | |
변경 전JoinCallbackController.php
| $solutionAuthenticationKey = $myappAuth->createAuthenticationKey($memberData); | |
| $myappBridge = \App::load(MyappBridge::class); | |
| $this->js($myappBridge->login($memberData, $solutionAuthenticationKey, $request->getReferer(), URI_MOBILE, $snsProvider)); | |
| exit; | |
| } | |
변경 후JoinCallbackController.php
| $solutionAuthenticationKey = $myappAuth->createAuthenticationKey($memberData); | |
| $myappBridge = \App::load(MyappBridge::class); | |
| $this->js($myappBridge->login($memberData, $solutionAuthenticationKey, $request->getReferer(), MyappUtil::getHomeUrl(), $snsProvider)); | |
| exit; | |
| } | |
변경 전LoginCallbackController.php
| $errorReason = $request->get()->get('error_reason'); | |
| // 최초 로그인 및 회원 가입 시, 약관 페이지에서 취소 버튼 클릭 시 홈으로 이동 처리 (페이지 루프 이슈 개선) | |
| if ($error == 'access_denied' && $errorReason == 'user_denied') { | |
| $redirectUrl = URI_MOBILE; | |
| } | |
| } | |
| throw new AlertRedirectException($e->getMessage(), $e->getCode(), $e, $redirectUrl, 'parent'); | |
변경 후LoginCallbackController.php
| $errorReason = $request->get()->get('error_reason'); | |
| // 최초 로그인 및 회원 가입 시, 약관 페이지에서 취소 버튼 클릭 시 홈으로 이동 처리 (페이지 루프 이슈 개선) | |
| if ($error == 'access_denied' && $errorReason == 'user_denied') { | |
| $redirectUrl = MyappUtil::getHomeUrl(); | |
| } | |
| } | |
| throw new AlertRedirectException($e->getMessage(), $e->getCode(), $e, $redirectUrl, 'parent'); | |
변경 전GoogleLoginController.php
| // 되돌아갈 URL | |
| $isMobile = $request->isMobile(); | |
| if (empty($sessionData)) { | |
| $homeUrl = ($isMobile ? URI_MOBILE : URI_HOME); | |
| } else { | |
| $sessionStateCode = $sessionData[GoogleLoginService::GOOGLE_STATE_CODE]; | |
| $globalMallPath = $sessionData['mallName'] ? $sessionData['mallName'] . DS : ''; | |
| $homeUrl = ($isMobile ? URI_MOBILE : URI_HOME) . $globalMallPath; | |
| } | |
| // 연동 팝업 사용자 취소 | |
| if (strpos($nextUrl, '../') !== false) { | |
| $nextUrl = preg_replace('#(\.\./)+#', '', $nextUrl); | |
| } | |
| $nextUrl = urlencode(URI_MOBILE . ltrim($nextUrl)); | |
| } | |
| MemberUtil::logoutWithCookie(); | |
| $this->js($myappBridge->schemeCloseCustomTabs($scheme, 'google', $message, $nextUrl)); | |
변경 후GoogleLoginController.php
| // 되돌아갈 URL | |
| $isMobile = $request->isMobile(); | |
| $homeUrl = ($isMobile ? URI_MOBILE : $request->getDomainUrl() . '/'); | |
| if (!empty($sessionData)) { | |
| $sessionStateCode = $sessionData[GoogleLoginService::GOOGLE_STATE_CODE]; | |
| $globalMallPath = $sessionData['mallName'] ? $sessionData['mallName'] . DS : ''; | |
| $homeUrl = $homeUrl . $globalMallPath; | |
| } | |
| // 연동 팝업 사용자 취소 | |
| if (strpos($nextUrl, '../') !== false) { | |
| $nextUrl = preg_replace('#(\.\./)+#', '', $nextUrl); | |
| } | |
| $nextUrl = urlencode(MyappUtil::getUri('/' . ltrim($nextUrl))); | |
| } | |
| MemberUtil::logoutWithCookie(); | |
| $this->js($myappBridge->schemeCloseCustomTabs($scheme, 'google', $message, $nextUrl)); | |
변경 전KakaoLoginController.php
| use Origin\Service\Member\KakaoSync\KakaoSyncConnectService; | |
| use Origin\Service\MyApp\MyappAuth; | |
| use Origin\Service\MyApp\MyappBridge; | |
| /** | |
| * 카카오 로그인 및 회원가입 | |
| $logger->channel('kakaoLogin')->info($request->get()->get('error_description')); | |
| $defaultRedirectUrl = '../../mypage/my_page.php'; | |
| if ($request->isFromMyapp()) { | |
| $defaultRedirectUrl = URI_MOBILE; | |
| } | |
| $js=" | |
| if (window.opener === null || Object.keys(window.opener).indexOf('" . $functionName . "') < 0) { | |
변경 후KakaoLoginController.php
| use Origin\Service\Member\KakaoSync\KakaoSyncConnectService; | |
| use Origin\Service\MyApp\MyappAuth; | |
| use Origin\Service\MyApp\MyappBridge; | |
| use Origin\Service\MyApp\MyappUtil; | |
| /** | |
| * 카카오 로그인 및 회원가입 | |
| $logger->channel('kakaoLogin')->info($request->get()->get('error_description')); | |
| $defaultRedirectUrl = '../../mypage/my_page.php'; | |
| if ($request->isFromMyapp()) { | |
| $defaultRedirectUrl = MyappUtil::getHomeUrl(); | |
| } | |
| $js=" | |
| if (window.opener === null || Object.keys(window.opener).indexOf('" . $functionName . "') < 0) { | |
변경 전LoginController.php
| use Component\SiteLink\SiteLink; | |
| use Framework\Debug\Exception\AlertBackException; | |
| use Origin\Service\MyApp\MyappAuth; | |
| use Origin\Service\MyApp\MyappUtil; | |
| use Validation; | |
| $this->setData('orderNoMaxLength', 16); | |
| $this->setData('isMyapp', $request->isMyapp()); | |
| $this->addScript($scripts); | |
| } catch (\Exception $e) { | |
| throw new AlertBackException($e->getMessage()); | |
| } | |
변경 후LoginController.php
| use Component\SiteLink\SiteLink; | |
| use Framework\Debug\Exception\AlertBackException; | |
| use Origin\Service\MyApp\MyappAuth; | |
| use Origin\Service\MyApp\MyappBridge; | |
| use Origin\Service\MyApp\MyappUtil; | |
| use Validation; | |
| $this->setData('orderNoMaxLength', 16); | |
| $this->setData('isMyapp', $request->isMyapp()); | |
| $this->addScript($scripts); | |
| if ($request->isFromMyapp()) { | |
| \Logger::channel('myapp')->info("Myapp add loginView(NONE) returnUrl is : " . $returnUrl); | |
| $loginViewType = 'NONE'; | |
| $showGuestOrder = false; | |
| $loginViewReferer = $returnUrl; | |
| if (strpos($loginViewReferer, '/order/order.php')) { | |
| $session = \App::getInstance('session'); | |
| if (!$session->has('guest')) { | |
| $showGuestOrder = true; | |
| } | |
| if (strpos($loginViewReferer, '?') !== false) { | |
| $loginViewReferer .= '&myappGuestOrder=y'; | |
| } else { | |
| $loginViewReferer .= '?myappGuestOrder=y'; | |
| } | |
| } | |
| \Logger::channel('myapp')->info("Myapp add loginView(NONE) bridge script and referer : " . $loginViewReferer); | |
| $isQuickLoginEnabled = MyappUtil::isQuickLoginEnabled(); | |
| \Logger::channel('myapp')->info("Myapp LoginController add loginView isQuickLoginEnabled: " . ($isQuickLoginEnabled ? 'true' : 'false')); | |
| $skipBack = !$isQuickLoginEnabled; | |
| $myappBridge = \App::load(MyappBridge::class); | |
| $loginViewScript = $myappBridge->loginView($loginViewReferer, $loginViewType, $showGuestOrder, $skipBack); | |
| if ($isQuickLoginEnabled) { | |
| $this->js($loginViewScript); | |
| exit; | |
| } | |
| echo $myappBridge->wrapScriptTag($loginViewScript); | |
| } | |
| } catch (\Exception $e) { | |
| throw new AlertBackException($e->getMessage()); | |
| } | |
변경 전LogoutController.php
| use Component\Member\Util\MemberUtil; | |
| use Framework\Debug\Exception\AlertRedirectException; | |
| use function GuzzleHttp\Psr7\str; | |
| use Validation; | |
| /** | |
| $request = \App::getInstance('request'); | |
| $logger = \App::getInstance('logger'); | |
| $returnUrl = $request->get()->get('returnUrl', $request->post()->get('returnUrl')); | |
| // returnUrl 데이타 타입 체크 | |
변경 후LogoutController.php
| use Component\Member\Util\MemberUtil; | |
| use Framework\Debug\Exception\AlertRedirectException; | |
| use function GuzzleHttp\Psr7\str; | |
| use Origin\Service\MyApp\MyappBridge; | |
| use Validation; | |
| /** | |
| $request = \App::getInstance('request'); | |
| $logger = \App::getInstance('logger'); | |
| if ($request->isFromMyapp()) { | |
| MemberUtil::logoutWithCookie(); | |
| $myappBridge = \App::load(MyappBridge::class); | |
| $this->js($myappBridge->logout()); | |
| exit; | |
| } | |
| $returnUrl = $request->get()->get('returnUrl', $request->post()->get('returnUrl')); | |
| // returnUrl 데이타 타입 체크 | |
변경 전MemberPsController.php
| use Framework\Utility\ComponentUtils; | |
| use Framework\Utility\StringUtils; | |
| use Origin\Exception\Member\KakaoSync\KakaoSyncException; | |
| use Origin\Service\Oauth\Google\GoogleLoginService; | |
| use Origin\Service\Statistics\Analytics\Member\MemberJoinCompleteAnalyticsCollectorService; | |
| use Origin\Service\Member\KakaoSync\KakaoSyncJoinService; | |
| /** @var KakaoLoginPolicy $kakaoLoginPolicy */ | |
| if (\App::getInstance(KakaoLoginPolicy::class)->useKakaoSync() && !empty($kakaoProfile)) { | |
| $this->loginBySns($kakaoProfile['id'], $returnUrl ?? ''); | |
| } | |
| $this->json(['result' => 'success', 'returnUrl' => $returnUrl]); | |
변경 후MemberPsController.php
| use Framework\Utility\ComponentUtils; | |
| use Framework\Utility\StringUtils; | |
| use Origin\Exception\Member\KakaoSync\KakaoSyncException; | |
| use Origin\Service\MyApp\MyappAuth; | |
| use Origin\Service\Oauth\Google\GoogleLoginService; | |
| use Origin\Service\Statistics\Analytics\Member\MemberJoinCompleteAnalyticsCollectorService; | |
| use Origin\Service\Member\KakaoSync\KakaoSyncJoinService; | |
| /** @var KakaoLoginPolicy $kakaoLoginPolicy */ | |
| if (\App::getInstance(KakaoLoginPolicy::class)->useKakaoSync() && !empty($kakaoProfile)) { | |
| $this->loginBySns($kakaoProfile['id'], $returnUrl ?? ''); | |
| if ($request->isFromMyapp()) { | |
| $session->set(MyappAuth::MYAPP_KAKAO_SYNC_AUTO_LOGIN, true); | |
| } | |
| } | |
| $this->json(['result' => 'success', 'returnUrl' => $returnUrl]); | |
변경 전NaverLoginController.php
| $solutionAuthenticationKey = $myappAuth->createAuthenticationKey($memberData); | |
| if (StringUtils::contains($referer, 'join_method') || $request->get()->get('naverType', '') == 'join_method') { | |
| $nextUrl = URI_MOBILE; | |
| } else { | |
| $nextUrl = MemberUtil::getLoginReturnURL(); | |
| } | |
| $errorDescription = $request->get()->get('error_description'); | |
| // 최초 로그인 및 회원 가입 시, 약관 페이지에서 취소 버튼 클릭 시 홈으로 이동 처리 (페이지 루프 이슈 개선) | |
| if ($error == 'access_denied' && $errorDescription == 'Canceled By User') { | |
| $redirectUrl = URI_MOBILE; | |
| } | |
| } | |
| throw new AlertRedirectException($e->getMessage(), null, null, $redirectUrl); | |
변경 후NaverLoginController.php
| $solutionAuthenticationKey = $myappAuth->createAuthenticationKey($memberData); | |
| if (StringUtils::contains($referer, 'join_method') || $request->get()->get('naverType', '') == 'join_method') { | |
| $nextUrl = MyappUtil::getHomeUrl(); | |
| } else { | |
| $nextUrl = MemberUtil::getLoginReturnURL(); | |
| } | |
| $errorDescription = $request->get()->get('error_description'); | |
| // 최초 로그인 및 회원 가입 시, 약관 페이지에서 취소 버튼 클릭 시 홈으로 이동 처리 (페이지 루프 이슈 개선) | |
| if ($error == 'access_denied' && $errorDescription == 'Canceled By User') { | |
| $redirectUrl = MyappUtil::getHomeUrl(); | |
| } | |
| } | |
| throw new AlertRedirectException($e->getMessage(), null, null, $redirectUrl); | |
변경 전WakeCompleteController.php
| $snsProvider = $memberSnsData['snsTypeFl']; | |
| } | |
| $this->js($myappBridge->login($memberData, $solutionAuthenticationKey, $request->getReferer(), URI_MOBILE, $snsProvider)); | |
| } else if (MyappUtil::isAndroid($userAgent) && $memberSnsData['snsTypeFl'] == 'facebook' && $session->has(MyappAuth::MYAPP_SCHEME)) { | |
| $myappBridge = \App::load(MyappBridge::class); | |
| $myappAuth = App::load(MyappAuth::class); | |
| $encryptor = \App::getInstance('encryptor'); | |
| $tokenData = [ | |
| "memNo" => (int)$memberData['memNo'], | |
| "next" => $session->get(MyappAuth::MYAPP_CUSTOM_TAB_LOGIN_NEXT_URL) ?? URI_MOBILE | |
| ]; | |
| $authToken = base64_encode($encryptor->encrypt($tokenData)); | |
| $nextUrl = MyappUtil::getMobileUri('/myapp/myapp_auth.php?customTabsAuthToken=' . $authToken); | |
| $bridge = $myappBridge->getLoginParams($memberData, $solutionAuthenticationKey, $request->getReferer(), '', 'facebook'); | |
| $params = [ | |
| $scheme = $session->get(MyappAuth::MYAPP_SCHEME); | |
| $tokenData = [ | |
| "memNo" => (int)$memberData['memNo'], | |
| "next" => $session->get(MyappAuth::MYAPP_CUSTOM_TAB_LOGIN_NEXT_URL) ?? URI_MOBILE | |
| ]; | |
| $authToken = MyappUtil::encryptCustomTabToken($tokenData); | |
| $nextUrl = MyappUtil::getCustomTabUrl($provider, MyappAuth::CUSTOM_TAB_LOGIN, $authToken); | |
변경 후WakeCompleteController.php
| $snsProvider = $memberSnsData['snsTypeFl']; | |
| } | |
| $this->js($myappBridge->login($memberData, $solutionAuthenticationKey, $request->getReferer(), MyappUtil::getHomeUrl(), $snsProvider)); | |
| } else if (MyappUtil::isAndroid($userAgent) && $memberSnsData['snsTypeFl'] == 'facebook' && $session->has(MyappAuth::MYAPP_SCHEME)) { | |
| $myappBridge = \App::load(MyappBridge::class); | |
| $myappAuth = App::load(MyappAuth::class); | |
| $encryptor = \App::getInstance('encryptor'); | |
| $tokenData = [ | |
| "memNo" => (int)$memberData['memNo'], | |
| "next" => $session->get(MyappAuth::MYAPP_CUSTOM_TAB_LOGIN_NEXT_URL) ?? MyappUtil::getHomeUrl() | |
| ]; | |
| $authToken = base64_encode($encryptor->encrypt($tokenData)); | |
| $nextUrl = MyappUtil::getUri('/myapp/myapp_auth.php?customTabsAuthToken=' . $authToken); | |
| $bridge = $myappBridge->getLoginParams($memberData, $solutionAuthenticationKey, $request->getReferer(), '', 'facebook'); | |
| $params = [ | |
| $scheme = $session->get(MyappAuth::MYAPP_SCHEME); | |
| $tokenData = [ | |
| "memNo" => (int)$memberData['memNo'], | |
| "next" => $session->get(MyappAuth::MYAPP_CUSTOM_TAB_LOGIN_NEXT_URL) ?? MyappUtil::getHomeUrl() | |
| ]; | |
| $authToken = MyappUtil::encryptCustomTabToken($tokenData); | |
| $nextUrl = MyappUtil::getCustomTabUrl($provider, MyappAuth::CUSTOM_TAB_LOGIN, $authToken); | |
변경 전MyPagePasswordController.php
| { | |
| public function index() | |
| { | |
| $session = \App::getInstance('session'); | |
| $scripts = ['gd_payco.js']; | |
| $scripts[] = 'gd_naver.js'; | |
| $facebookReAuthenticationUrl =$facebook->getReAuthenticationUrl(); | |
| } | |
| $request = \App::getInstance('request'); | |
| $userAgent = $request->server()->get('HTTP_USER_AGENT'); | |
| if ($request->isFromMyapp() && MyappUtil::isAndroid($userAgent)) { | |
| $facebookReAuthenticationUrl = MyappUtil::getCustomTabsUrl('facebook', 're-authentication'); | |
| ArrayUtils::unsetDiff($joinField, ['memPw']); | |
| ArrayUtils::unsetDiff($member, ['memId']); | |
| $this->setData('joinField', $joinField); | |
| $this->setData('data', $member); | |
| $this->setData('usePayco', $usePayco); | |
변경 후MyPagePasswordController.php
| { | |
| public function index() | |
| { | |
| $request = \App::getInstance('request'); | |
| $session = \App::getInstance('session'); | |
| $scripts = ['gd_payco.js']; | |
| $scripts[] = 'gd_naver.js'; | |
| $facebookReAuthenticationUrl =$facebook->getReAuthenticationUrl(); | |
| } | |
| $userAgent = $request->server()->get('HTTP_USER_AGENT'); | |
| if ($request->isFromMyapp() && MyappUtil::isAndroid($userAgent)) { | |
| $facebookReAuthenticationUrl = MyappUtil::getCustomTabsUrl('facebook', 're-authentication'); | |
| ArrayUtils::unsetDiff($joinField, ['memPw']); | |
| ArrayUtils::unsetDiff($member, ['memId']); | |
| $kakaoReturnUrl = '../mypage/my_page.php'; | |
| if ($request->isFromMyapp()) { | |
| $kakaoReturnUrl = '/mypage/my_page.php'; | |
| } | |
| $this->setData('kakaoReturnUrl', $kakaoReturnUrl); | |
| $this->setData('joinField', $joinField); | |
| $this->setData('data', $member); | |
| $this->setData('usePayco', $usePayco); | |
변경 전AdultController.php
| const DEPRECATED_PATH_MODULE_SCRIPT = "DEPRECATED_PATH_MODULE_SCRIPT"; | |
| public function index() | |
| { | |
| $request = \App::getInstance('request'); | |
| if ($request->isFromMyapp() && !MemberUtil::isLogin()) { | |
| $returnUrl = $request->get()->get('returnUrl', $request->getReferer()); | |
| if (!empty($returnUrl)) { | |
| $returnUrl = rtrim(URI_MOBILE, '/') . $returnUrl; | |
| } | |
| $isQuickLoginEnabled = MyappUtil::isQuickLoginEnabled(); | |
| \Logger::channel('myapp')->info("Myapp AdultController add loginView isQuickLoginEnabled: " . ($isQuickLoginEnabled ? 'true' : 'false')); | |
| $myappBridge = \App::load(MyappBridge::class); | |
| $loginViewScript = $myappBridge->loginView($returnUrl, 'ONLY_ADULT'); | |
| if ($isQuickLoginEnabled) { | |
| $this->js($loginViewScript); | |
| exit; | |
| } | |
| echo $myappBridge->wrapScriptTag($loginViewScript); | |
| } | |
| // 마이앱 로그인뷰 스크립트 | |
| $myappBuilderInfo = gd_policy('myapp.config')['builder_auth']; | |
| $myappUseQuickLogin = gd_policy('myapp.config')['useQuickLogin']; | |
변경 후AdultController.php
| const DEPRECATED_PATH_MODULE_SCRIPT = "DEPRECATED_PATH_MODULE_SCRIPT"; | |
| public function index() | |
| { | |
| // 마이앱 로그인뷰 스크립트 | |
| $myappBuilderInfo = gd_policy('myapp.config')['builder_auth']; | |
| $myappUseQuickLogin = gd_policy('myapp.config')['useQuickLogin']; | |
변경 전LoginController.php
| $front = \App::load('\\Controller\\Front\\Member\\LoginController'); | |
| $front->index(); | |
| $this->setData($front->getData()); | |
| if ($request->isFromMyapp()) { | |
| $referer = urldecode($front->getData('returnUrl')); | |
| \Logger::channel('myapp')->info("Myapp add loginView(NONE) returnUrl is : " . $referer); | |
| $loginViewType = 'NONE'; | |
| $showGuestOrder = false; | |
| if (strpos($referer, '/order/order.php')) { | |
| $session = \App::getInstance('session'); | |
| if (!$session->has('guest')) { | |
| $showGuestOrder = true; | |
| } | |
| if (!empty($queryParams)) { | |
| $referer .= '&myappGuestOrder=y'; | |
| } else { | |
| $referer .= '?myappGuestOrder=y'; | |
| } | |
| } | |
| \Logger::channel('myapp')->info("Myapp add loginView(NONE) bridge script and referer : " . $referer); | |
| $isQuickLoginEnabled = MyappUtil::isQuickLoginEnabled(); | |
| \Logger::channel('myapp')->info("Myapp LoginController add loginView isQuickLoginEnabled: " . ($isQuickLoginEnabled ? 'true' : 'false')); | |
| $skipBack = !$isQuickLoginEnabled; // 퀵 로그인 사용 안함인 경우, history.back() 스킵 처리 | |
| $loginViewScript = $myappBridge->loginView($referer, $loginViewType, $showGuestOrder, $skipBack); | |
| if ($isQuickLoginEnabled) { | |
| $this->js($loginViewScript); | |
| exit; | |
| } | |
| echo $myappBridge->wrapScriptTag($loginViewScript); | |
| } | |
| $scripts = ['gd_payco.js']; | |
| if ($front->getData('useFacebookLogin') === true) { | |
| $scripts[] = 'gd_sns.js'; | |
변경 후LoginController.php
| $front = \App::load('\\Controller\\Front\\Member\\LoginController'); | |
| $front->index(); | |
| $this->setData($front->getData()); | |
| $scripts = ['gd_payco.js']; | |
| if ($front->getData('useFacebookLogin') === true) { | |
| $scripts[] = 'gd_sns.js'; | |
변경 전LogoutController.php
| namespace Bundle\Controller\Mobile\Member; | |
| use Bundle\Component\Member\Util\MemberUtil; | |
| use Origin\Service\MyApp\MyappBridge; | |
| /** | |
| * Class 회원 로그아웃 | |
| * @package Bundle\Controller\Mobile\Member | |
| */ | |
| public function index() | |
| { | |
| $request = \App::getInstance('request'); | |
| if ($request->isFromMyapp()) { | |
| MemberUtil::logoutWithCookie(); | |
| $myappBridge = \App::load(MyappBridge::class); | |
| $this->js($myappBridge->logout()); | |
| exit; | |
| } | |
| /** @var \Bundle\Controller\Front\Member\LogoutController $front */ | |
| $front = \App::load('\\Controller\\Front\\Member\\LogoutController'); | |
| $front->index(); | |
변경 후LogoutController.php
| namespace Bundle\Controller\Mobile\Member; | |
| /** | |
| * Class 회원 로그아웃 | |
| * @package Bundle\Controller\Mobile\Member | |
| */ | |
| public function index() | |
| { | |
| /** @var \Bundle\Controller\Front\Member\LogoutController $front */ | |
| $front = \App::load('\\Controller\\Front\\Member\\LogoutController'); | |
| $front->index(); | |