소셜로그인 추가하기 - GitHub 로그인 (2020-11-21 07:44 수정)
본 강좌 등록 이후 업데이트가 안될수 있습니다
최신 버전은 위 링크를 접속해서 내용 비교후 사용하세요
그누보드5.4 에 GitHub 소셜로그인 추가 합니다
Authorization callback URL 주소가 하나만 지원합니다
2개 이상의 콜백 주소가 적용이 안되는 거죠. 아래처럼 복수의 callback 입력이 불가능합니다
https://happyjung.com/plugin/social/?hauth.done=github
https://www.happyjung.com/plugin/social/?hauth.done=github
콜백주소는 정확하지 않으면 에러가 날텐데... 하나의 주소로만 사용하는 경우는 문제가 없겠으나,
www 있고 없는 것에 자유롭게 운용중인 홈페이지는 문제가 될지 않을까 생각됩니다.
콜백 이슈가 확인되어 모바일 작업은 하지 않았습니다

[ 공통 ]
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&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&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&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&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&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&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
댓글 4개
그누보드 깃헙에도 처리된 이슈나 풀리퀘스트는 클로즈했으면 좋을 것 같습니다.
위 내용중 오류 피드백 부탁드려도 될까요?
쇠뿔도 단김에 빼라고 했는데, 오늘 부터 시작해 봐야 겠습니다.
게시판 목록
개발강좌
1. 유창화님의 썸네일, 정규표현식, 이미지관련 강좌
2. Sphinx 검색엔진을 이용한 도로명 주소 검색 시스템 구축
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|---|
| 77 | 정규표현식 | 8년 전 | 4966 | ||
| 76 | 정규표현식 | 8년 전 | 4337 | ||
| 75 | 정규표현식 | 8년 전 | 10668 | ||
| 74 | 정규표현식 | 8년 전 | 7716 | ||
| 73 | 정규표현식 | 8년 전 | 5595 | ||
| 72 | 정규표현식 | 8년 전 | 6461 | ||
| 71 | 정규표현식 | 8년 전 | 7060 | ||
| 70 | 정규표현식 | 8년 전 | 3822 | ||
| 69 | 정규표현식 | 8년 전 | 4999 | ||
| 68 | 정규표현식 | 8년 전 | 5637 | ||
| 67 | 정규표현식 | 8년 전 | 4940 | ||
| 66 | 그누보드5 |
|
8년 전 | 4239 | |
| 65 | 그누보드5 |
|
9년 전 | 4110 | |
| 64 | 그누보드5 |
|
9년 전 | 7760 | |
| 63 | 그누보드5 |
|
9년 전 | 5407 | |
| 62 | 그누보드5 | 10년 전 | 132690 | ||
| 61 | 그누보드5 | 10년 전 | 7759 | ||
| 60 | 그누보드5 | 10년 전 | 6114 | ||
| 59 | 그누보드5 | 10년 전 | 6049 | ||
| 58 | 그누보드5 | 10년 전 | 6626 | ||
| 57 | 그누보드5 | 10년 전 | 10261 | ||
| 56 | 그누보드5 | 10년 전 | 7335 | ||
| 55 | 그누보드5 | 10년 전 | 11315 | ||
| 54 | 그누보드5 | 10년 전 | 7438 | ||
| 53 | 그누보드5 | 10년 전 | 20573 | ||
| 52 | 도로명주소 | 10년 전 | 5760 | ||
| 51 | 도로명주소 | 11년 전 | 6920 | ||
| 50 | 도로명주소 | 11년 전 | 9389 | ||
| 49 | 도로명주소 | 11년 전 | 8663 | ||
| 48 | 도로명주소 | 11년 전 | 8984 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기