[G5][GitHub] 깃헙 로그인 추가(등록)하기 > 기술자료 | 해피정닷컴

[G5][GitHub] 깃헙 로그인 추가(등록)하기 > 기술자료

본문 바로가기

사이트 내 전체검색

[G5][GitHub] 깃헙 로그인 추가(등록)하기 > 기술자료

SNS [G5][GitHub] 깃헙 로그인 추가(등록)하기

페이지 정보


첨부파일

본문

그누보드5.4 에 GitHub 소셜로그인 추가 합니다

Authorization callback URL 주소가 하나만 지원합니다
2개 이상의 콜백 주소가 적용이 안되는 거죠. 아래처럼 복수의 callback 입력이 불가능합니다
https://www.happyjung.com/plugin/social/?hauth.done=github
https://www.happyjung.com/plugin/social/?hauth.done=github

콜백주소는 정확하지 않으면 에러가 날텐데... 하나의 주소로만 사용하는 경우는 문제가 없겠으나,
www 있고 없는 것에 자유롭게 운용중인 홈페이지는 문제가 될지 않을까 생각됩니다.

콜백 이슈가 확인되어 모바일 작업은 하지 않았습니다



[ 구조 ]
그누보드5.4
  ├ adm
  │  ├ css
  │  │  └ admin.css  ... 수정
  │  └ img
  │     └ social
  │         ├ sns_logo2.png  ... 신규
  │         └ sns_logo2_not.png  ... 신규
  ├ mobile
  │  └ skin
  │     └ social
  │         ├ img
  │         │  ├ sns_logo2.png  ... 신규
  │         │  └ sns_logo2_not.png  ... 신규
  │         └ style.css
  ├ plugin
  │   └ social
  │       ├ Hybrid
  │       │   └ Providers
  │       │       └ Github.php  ... 신규
  │       └ includes
  │           └ functions.php  ... 수정
  └ skin
      └ social
          ├ img
          │  ├ sns_logo2.png  ... 신규
          │  └ sns_logo2_not.png  ... 신규
          └ style.css


[ 공통 ]

1-1. / adm / config_form.php

//소셜 로그인 관련 필드 카카오 클라이언트 시크릿 추가
if(!isset($config['cf_kakao_client_secret'])) {
    sql_query("ALTER TABLE `{$g5['config_table']}`
                ADD `cf_kakao_client_secret` varchar(100) NOT NULL DEFAULT '' AFTER `cf_kakao_rest_key`
    ", true);
}

아래에 내용 추가

//소셜 로그인 관련 필드 깃허브 추가
if(!isset($config['cf_github_clientid'])) {
    sql_query(" ALTER TABLE `{$g5['config_table']}`
                    ADD `cf_github_clientid` VARCHAR(255) NOT NULL AFTER `cf_payco_secret`,
                    ADD `cf_github_secret` VARCHAR(255) NOT NULL AFTER `cf_github_clientid` ", true);
}


1-2. / adm / config_form.php

                <div class="explain_box">
                    <input type="checkbox" name="cf_social_servicelist[]" id="check_social_payco" value="payco" <?php echo option_array_checked('payco', $config['cf_social_servicelist']); ?> >
                    <label for="check_social_payco">페이코 로그인을 사용합니다</label>
                    <div>
                    <h3>페이코 CallbackURL</h3>
                    <p><?php echo get_social_callbackurl('payco'); ?></p>
                    </div>
                </div>

아래에 내용 추가

                <div class="explain_box">
                    <input type="checkbox" name="cf_social_servicelist[]" id="check_social_github" value="github" <?php echo option_array_checked('github', $config['cf_social_servicelist']); ?> >
                    <label for="check_social_github">깃허브 로그인을 사용합니다</label>
                    <div>
                    <h3>깃허브 CallbackURL</h3>
                    <p><?php echo get_social_callbackurl('github'); ?></p>
                    </div>
                </div>


1-3. / adm / config_form.php

        <tr>
            <th scope="row"><label for="cf_payco_clientid">페이코 Client ID</label></th>
            <td>
                <input type="text" name="cf_payco_clientid" value="<?php echo $config['cf_payco_clientid']; ?>" id="cf_payco_clientid" class="frm_input" size="40"> <a href="https://developers.payco.com/guide" target="_blank" class="btn_frmline">앱 등록하기</a>
            </td>
            <th scope="row"><label for="cf_payco_secret">페이코 Secret</label></th>
            <td>
                <input type="text" name="cf_payco_secret" value="<?php echo $config['cf_payco_secret']; ?>" id="cf_payco_secret" class="frm_input" size="45">
            </td>
        </tr>

아래에 내용 추가

        <tr>
            <th scope="row"><label for="cf_github_clientid">깃허브 Client ID</label></th>
            <td>
                <input type="text" name="cf_github_clientid" value="<?php echo $config['cf_github_clientid']; ?>" id="cf_github_clientid" class="frm_input" size="40"> <a href="https://github.com/settings/developers" target="_blank" class="btn_frmline">앱 등록하기</a>
            </td>
            <th scope="row"><label for="cf_github_secret">깃허브 Client secrets</label></th>
            <td>
                <input type="text" name="cf_github_secret" value="<?php echo $config['cf_github_secret']; ?>" id="cf_github_secret" class="frm_input" size="45">
            </td>
        </tr>


2-1. / adm / config_form_update.php

$check_keys = array('cf_lg_mid', 'cf_lg_mert_key', 'cf_cert_kcb_cd', 'cf_cert_kcp_cd', 'cf_editor', 'cf_recaptcha_site_key', 'cf_recaptcha_secret_key', 'cf_naver_clientid', 'cf_naver_secret', 'cf_facebook_appid', 'cf_facebook_secret', 'cf_twitter_key', 'cf_twitter_secret', 'cf_google_clientid', 'cf_google_secret', 'cf_googl_shorturl_apikey', 'cf_kakao_rest_key', 'cf_kakao_client_secret', 'cf_kakao_js_apikey', 'cf_payco_clientid', 'cf_payco_secret');

를 아래와 같이 수정

$check_keys = array('cf_lg_mid', 'cf_lg_mert_key', 'cf_cert_kcb_cd', 'cf_cert_kcp_cd', 'cf_editor', 'cf_recaptcha_site_key', 'cf_recaptcha_secret_key', 'cf_naver_clientid', 'cf_naver_secret', 'cf_facebook_appid', 'cf_facebook_secret', 'cf_twitter_key', 'cf_twitter_secret', 'cf_google_clientid', 'cf_google_secret', 'cf_googl_shorturl_apikey', 'cf_kakao_rest_key', 'cf_kakao_client_secret', 'cf_kakao_js_apikey', 'cf_payco_clientid', 'cf_payco_secret', 'cf_github_clientid', 'cf_github_secret');


2-2. / adm / config_form_update.php

                cf_payco_secret = '{$_POST['cf_payco_secret']}',

아래에 내용 추가

                cf_github_clientid = '{$_POST['cf_github_clientid']}',
                cf_github_secret = '{$_POST['cf_github_secret']}',


3. / plugin / social / Hybrid / Providers / GitHub.php 업로드
https://sir.kr/main/gm/ 에서 해당 위치의 파일을 업로드


4-1. / plugin / social / includes / functions.php  292줄

function social_extends_get_keys($provider){

아래 내용 추가

        // Github
        $r['Github'] = array(
                    "enabled" => option_array_checked('github', $config['cf_social_servicelist']) ? true : false,
                    "keys" => array("id" => $config['cf_github_clientid'], "secret" => $config['cf_github_secret']),
                    "redirect_uri" => get_social_callbackurl('github')
                    //"access_type"     => "offline",   // optional
                    //"approval_prompt" => "force",     // optional
                );


4-2. / plugin / social / includes / functions.php  907줄

function social_get_provider_service_name($provider='', $all=''){

아래 내용 추가

        'github'  =>  '깃허브',


[ PC ]

1. 첨부된 sns_github_s.zip 압축해제후 업로드
/ skin / social / img / sns_github_s.png


2. / skin / social / social_login.skin.php  적당한 위치에 추가

        <?php if( social_service_check('github') ) {     //깃헙 로그인을 사용한다면 ?>
        <a href="<?php echo $self_url;?>?provider=github&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-github" title="깃헙">
            <span class="ico"></span>
            <span class="txt">깃헙<i> 로그인</i></span>
        </a>
        <?php }     //end if ?>


3. / skin / social / social_login.skin.1.php  적당한 위치에 추가

        <?php if( social_service_check('github') ) {     //깃헙 로그인을 사용한다면 ?>
        <a href="<?php echo $self_url;?>?provider=github&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-github" title="깃헙">
            <span class="ico"></span>
            <span class="txt">깃헙<i> 로그인</i></span>
        </a>
        <?php }     //end if ?>


4. / skin / social / social_register.skin.php 적당한 위치에

        <?php if( social_service_check('github') ) {     //깃헙 로그인을 사용한다면 ?>
        <a href="<?php echo $self_url;?>?provider=github&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-github" title="깃헙으로 회원가입하기">
            <span class="ico"></span>
            <span class="txt">깃헙으로 회원가입하기</span>
        </a>
        <?php }     //end if ?>


5. / mobile / skin / social / style.css

.sns-wrap-over .sns-kakao {background:url('./img/sns_kakao_s.png') no-repeat}  아래에 
.sns-wrap-over .sns-github {background:url('./img/sns_github_s.png') no-repeat}  추가

#sns_login .sns-payco {background-color:#df0b00;background-position:5px 5px;border-bottom:1px solid #9d0800}  아래에 
#sns_login .sns-github {background-color:#000;background-position:5px 5px;border-bottom:1px solid #000}  추가

#sns_login .txt:hover {background:rgba(0,0,0,0.07)}  아래에
#sns_login .sns-github .txt {border-left:1px solid #333}  추가

#sns_register .sns-payco {background-color:#df0b00;background-position:0 0}  아래에
#sns_register .sns-github {background-color:#000000;background-position:0 0}  추가



[ Mobile ]

1-1.  첨부된 sns_github_s.zip 압축해제후 업로드
/ mobile / skin / social / img / sns_github_s.png


1-2. 첨부된 sns_logo.zip 압축해제후 업로드
/ mobile / skin / social / img / sns_logo2.png
/ mobile / skin / social / img / sns_logo2_not.png


2. / mobile / skin / social / social_login.skin.php  적당한 위치에 추가

        <?php if( social_service_check('github') ) {     //깃헙 로그인을 사용한다면 ?>
        <a href="<?php echo $self_url;?>?provider=github&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-github" title="깃헙">
            <span class="ico"></span>
            <span class="txt">깃헙<i> 로그인</i></span>
        </a>
        <?php }     //end if ?>


3. / mobile / skin / social / social_login.skin.1.php  적당한 위치에 추가

        <?php if( social_service_check('github') ) {     //깃헙 로그인을 사용한다면 ?>
        <a href="<?php echo $self_url;?>?provider=github&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-github" title="깃헙">
            <span class="ico"></span>
            <span class="txt">깃헙 로그인</span>
        </a>
        <?php }     //end if ?>


4. / mobile / skin / social / social_register.skin.php 적당한 위치에

            <?php if( social_service_check('github') ) {     //깃헙 로그인을 사용한다면 ?>
            <a href="<?php echo $self_url;?>?provider=github&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-github" title="깃헙">
                <span class="ico"></span>
                <span class="txt">깃헙<i> 로그인</i></span>
            </a>
            <?php }     //end if ?>


5-1. / mobile / skin / social / style.css
.reg-form .sns-icon .ico {display:block;background:url('./img/sns_logo.png') no-repeat;vertical-align:middle;width:24px;height:24px}
.reg-form .sns-icon-not .ico {display:block;background:url('./img/sns_logo_not.png') no-repeat;vertical-align:middle}

를 아래와 같이 변경

.reg-form .sns-icon .ico {display:block;background:url('./img/sns_logo2.png') no-repeat;vertical-align:middle;width:24px;height:24px}
.reg-form .sns-icon-not .ico {display:block;background:url('./img/sns_logo2_not.png') no-repeat;vertical-align:middle}


5-2. / mobile / skin / social / style.css
.sns-wrap-reg .sns-payco .ico {background-position:-116px 0}
아래에 추가
.sns-wrap-reg .sns-github {border-color:#000000}
.sns-wrap-reg .sns-github .ico {background-position:-174px 0}


5-3. / mobile / skin / social / style.css
.sns-wrap-over .sns-payco {background:url('./img/sns_payco_s.png') no-repeat}
아래에 추가
.sns-wrap-over .sns-github {background:url('./img/sns_github_s.png') no-repeat}


5-4. / mobile / skin / social / style.css
#sns_login .sns-payco {background-color:#df0b00;background-position:5px 5px;border-bottom:1px solid #9d0800}
아래에 추가
#sns_login .sns-github {background-color:#000000;background-position:5px 5px;border-bottom:1px solid #9d0800}


5-5. / mobile / skin / social / style.css
#sns_login .txt {text-align:left;padding-left:10px;border-left:1px solid rgba(0,0,0,0.1);display:block;font-weight:bold}
아래에 추가
#sns_login .sns-github .txt {text-align:left;padding-left:10px;border-left:1px solid #333;display:block;font-weight:bold}


5-6. / mobile / skin / social / style.css
#sns_register .sns-payco {background-color:#df0b00;background-position:5px 5px;border-bottom:1px solid #9d0800}
아래에 추가
#sns_register .sns-github {background-color:#000000;background-position:5px 5px;border-bottom:1px solid #9d0800}



참고자료
https://sir.kr/qa/376753
 

댓글목록

등록된 댓글이 없습니다.


Total 2,633건 1 페이지
  • RSS
기술자료 목록
2633
MySQL   212  2024-03-29 14:14 ~ 2024-03-29 14:14  
2632
그누보드   534  2024-02-23 18:40 ~ 2024-02-24 06:13  
2631
JavaScript   550  2024-02-16 18:50 ~ 2024-02-16 20:37  
2630
Java   479  2024-02-06 16:49  
2629
PHP   643  2024-02-06 16:42  
2628
호스팅   606  2024-01-29 12:54  
2627
PHP   726  2024-01-26 11:04 ~ 2024-01-26 11:13  
2626
MySQL   957  2024-01-08 17:37 ~ 2024-03-14 16:00  
2625
SQL   902  2024-01-08 12:36  
2624
영카트   1110  2024-01-04 14:57  
2623
일반   1987  2023-12-15 18:33  
2622
Android   1565  2023-11-30 18:48 ~ 2023-11-30 19:41  
2621
전자결제   2737  2023-11-23 19:53  
2620
PHP   2016  2023-11-20 10:56 ~ 2023-11-20 11:14  
2619
Linux   1817  2023-11-09 19:55  
2618
그누보드   1862  2023-11-06 20:38  
2617
Linux   1833  2023-11-01 21:41 ~ 2023-11-02 10:30  
2616
영카트   1917  2023-10-07 23:31  
2615
SNS   2894  2023-09-24 17:56  
2614
ClassicASP   2609  2023-09-14 08:38  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: 서울센터 (08393) 서울시 구로구 디지털로32가길 16 파트너스타워2차 1206-280호
        대전센터 (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 지원1동 205호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 2014-서울구로-0074 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.