소셜로그인후 페이지 이동하지 않도록

소셜로그인후 페이지 이동하지 않도록

QA

소셜로그인후 페이지 이동하지 않도록

본문

혼자서 끙끙 앓으며 해보다가 도저히 안될 것 같아서 여쭤봅니다.

일단 제가 편리님의 소셜로그인 v2 를 사용중인데

용도상 각 게시판에 아웃로그인을 달아놨고 해당 게시판에서 소셜 로그인을 통해서

로그인을 하면, 메인페이지(G5_URL)로 이동을 해버리는데요.

 

그 전에 소셜로그인 v1을 사용할 때는 메인페이지로 이동하지 않아서 쓰기 편했기에

 /g5/plugin/oauth/functions.php 부분을 수정해서 쓸려고 합니다.

 

아래의 코드 중에서 44번째 줄에 function alert_opener_url($msg='', $url=G5_URL) 문에서

G5_URL 를 G5_BBS_URL.'/board.php?bo_table=notice' 로 바꿔주면 

로그인 후 특정게시판으로 이동이 가능했습니다.

 

그런데 특정 게시판으로 이동하는 것이 아닌 해당 게시판에서 아웃로그인 폼을 이용해

소셜로그인을 해도 페이지 이동 없이 해당 게시판에 머물러 있으려면

어떻게 해야하는지 감이 안옵니다

 

조금만 도와주셔도 정말 감사할것 같아요 ~

 

 

 


<?php
 
function get_oauth_member_info($no, $nick, $service)
{
    if(!$no || !$service)
        return '';
 
    $id   = '';
    $str  = '';
    $info = array();
 
    if(strlen($no) > 16)
        $no = str_baseconvert($no);
 
    switch($service) {
        case 'naver':
            $str = 'nid';
            break;
        case 'kakao':
            $str = 'kko';
            break;
        case 'facebook':
            $str = 'fcb';
            break;
        case 'google':
            $str = 'ggl';
            break;
        default:
            alert('올바르게 이용해 주십시오.');
            break;
    }
 
    if($str)
        $id = $str.G5_OAUTH_ID_DELIMITER.$no;
 
    $pass = get_encrypt_string(pack('V*', rand(), rand(), rand(), rand()));
    $nick = G5_OAUTH_NICK_PREFIX.preg_replace('#[^0-9A-Za-zㄱ-ㅎ가-힣]#', '', $nick);
 
    $info = array('id' => $id, 'pass' => $pass, 'nick' => $nick);
 
    return $info;
}
 
function alert_opener_url($msg='', $url=G5_URL)
{
    $url = str_replace('&', '&', $url);
    $url = preg_replace("/[\<\>\'\"\\\'\\\"\(\)]/", "", $url);
 
    // url 체크
    check_url_host($url);
 
    echo '<script>'.PHP_EOL;
    if(trim($msg))
        echo 'alert("'.$msg.'");'.PHP_EOL;
    echo 'window.opener.location.href = "'.$url.'";'.PHP_EOL;
    echo 'window.close();'.PHP_EOL;
    echo '</script>';
    exit;
}
 
// http://php.net/manual/kr/function.base-convert.php#109660
function str_baseconvert($str, $frombase=10, $tobase=36)
{
    $str = trim($str);
    if (intval($frombase) != 10) {
        $len = strlen($str);
        $q = 0;
        for ($i=0; $i<$len; $i++) {
            $r = base_convert($str[$i], $frombase, 10);
            $q = bcadd(bcmul($q, $frombase), $r);
        }
    }
    else $q = $str;
 
    if (intval($tobase) != 10) {
        $s = '';
        while (bccomp($q, '0', 0) > 0) {
            $r = intval(bcmod($q, $tobase));
            $s = base_convert($r, 10, $tobase) . $s;
            $q = bcdiv($q, $tobase, 0);
        }
    }
    else $s = $q;
 
    return $s;
}
 
function is_social_connected($mb_id, $service)
{
    global $g5;
 
    $sql = " select sm_id from {$g5['social_member_table']} where mb_id = '$mb_id' and sm_service = '$service' ";
    $row = sql_fetch($sql);
 
    return $row['sm_id'] ? true : false;
}
 
function reset_social_info()
{
    unset($GLOBALS['member']);
 
    set_session('ss_mb_id', '');
    set_session('ss_oauth_member_'.get_session('ss_oauth_member_no').'_info', '');
    set_session('ss_oauth_member_no', '');
}
?>

이 질문에 댓글 쓰기 :

답변 1

답변을 작성하시기 전에 로그인 해주세요.
전체 129,672 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT