크롬80문제 해결후 배추 쇼셜로그인 문제 크롬80문제 해결후

크롬80문제 해결후 배추 쇼셜로그인 문제 크롬80문제 해결후

QA

크롬80문제 해결후 배추 쇼셜로그인 문제 크롬80문제 해결후

본문

<?php
/**
 * 소셜로그인 (Social-login for Gnuboard4)
 *
 * Copyright (c) 2012 Choi Jae-Young <www.miwit.com>
 *
 * 저작권 안내
 * - 저작권자는 이 프로그램을 사용하므로서 발생하는 모든 문제에 대하여 책임을 지지 않습니다. 
 * - 이 프로그램을 어떠한 형태로든 재배포 및 공개하는 것을 허락하지 않습니다.
 * - 이 저작권 표시사항을 저작권자를 제외한 그 누구도 수정할 수 없습니다.
 */
$sameCheck = 'N';

include_once("_common.php");
include_once("$g4[path]/plugin/social-login/_lib.php");
include_once("$g4[path]/plugin/social-login/_config.php");

if ($is_member)
    alert_close("이미 로그인 하셨습니다.");

if ($_SESSION['access_token']) {
    $url = "https://kapi.kakao.com/v2/user/me";

    $ch = curl_init();  
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt ($ch, CURLOPT_SSLVERSION, 1); 
    curl_setopt ($ch, CURLOPT_HEADER, 0); 
    curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer '.$_SESSION['access_token'])); 
    curl_setopt ($ch, CURLOPT_POST, 0);
    curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt ($ch, CURLOPT_TIMEOUT, 30); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($ch);       
    curl_close($ch);

    $json = json_decode($result, true);

    $kakao_id = $json['id'];
    $kakao_nickname = addslashes($json['properties']['nickname']);
    if (strtolower(preg_replace("/-/", "", $g4['charset'])) == 'euckr') {
        $kakao_nickname = set_euckr($kakao_nickname);
    }

    $row = sql_fetch("select * from mw_kakao_login where kakao_id = '$kakao_id'", false);
    if ($row['kakao_id'])
    {
        $mb = get_member($row['mb_id']);
        if ($mb) {
            // 차단된 아이디인가?
            if ($mb[mb_intercept_date] && $mb[mb_intercept_date] <= date("Ymd", $g4[server_time])) {
                $date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb[mb_intercept_date]); 
                unset($_SESSION['access_token']);
                alert_close("회원님의 아이디는 접근이 금지되어 있습니다.\\n\\n처리일 : $date");
            }

            // 탈퇴한 아이디인가?
            if ($mb[mb_leave_date] && $mb[mb_leave_date] <= date("Ymd", $g4[server_time])) {
                $date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb[mb_leave_date]); 
                unset($_SESSION['access_token']);
                alert_close("탈퇴한 아이디이므로 접근하실 수 없습니다.\\n\\n탈퇴일 : $date");
            }

            set_session('ss_mb_id', $mb['mb_id']);
            set_session('ss_mb_key', md5($mb['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']));
        }
    }
    else {
        mwp_is_social();

        include_once("$g4[path]/plugin/social-login/_upgrade.php");

        $c = 2; 
        $mb_nick = $kakao_nickname;
        if (!$mb_nick) {
            unset($_SESSION['access_token']);
            alert_close("이름 정보가 없어 소셜로그인 할 수 없습니다.");
        }

        /*
        $row = sql_fetch(" select * from {$g4['member_table']} where mb_email = '{$kakao_email}' ");
        if ($row) {
            unset($_SESSION['access_token']);
            alert_close("이메일주소가 이미 회원으로 가입되어 있어 소셜로그인이 불가능 합니다.");
        }
        */

        while ($row = sql_fetch("select * from {$g4['member_table']} where mb_nick = '{$mb_nick}'")) {
            $mb_nick = $kakao_nickname.$c++;
        }

        $mb_id = $member['mb_id']?$member['mb_id']:'@ka-'.$kakao_id;

        $sql = " insert into mw_kakao_login set ";
        $sql.= "   mb_id = '{$mb_id}' ";
        $sql.= " , kakao_id = '{$kakao_id}' ";
        $sql.= " , kakao_nickname = '{$kakao_nickname}' ";
        $sql.= " , kakao_datetime = '{$g4['time_ymdhis']}' ";
        sql_query($sql);

        $sql = " insert into $g4[member_table] set ";
        $sql.= "   mb_id = '{$mb_id}' ";
        $sql.= " , mb_name = '{$kakao_nickname}' ";
        $sql.= " , mb_nick = '{$mb_nick}' ";
        $sql.= " , mb_level = '{$config['cf_register_level']}' ";
        $sql.= " , mb_datetime = '{$g4['time_ymdhis']}' ";
        $sql.= " , mb_ip = '{$_SERVER['REMOTE_ADDR']}' ";
        $sql.= " , mb_email_certify = '{$g4['time_ymdhis']}' ";
        $sql.= " , mb_mailling = '' ";
        $sql.= " , mb_open = '1' ";
        sql_query($sql);

        // 회원아이디 세션 생성
        set_session('ss_mb_id', $mb_id);
        set_session('ss_mb_reg', $mb_id);
        set_session('ss_mb_key', md5($g4['time_ymdhis'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']));

        // 회원가입 포인트 부여
        insert_point($mb_id, $config['cf_register_point'], "회원가입 축하", '@member', $mb_id, '회원가입');

        if (function_exists("mw_partner_register")) mw_partner_register($mb_id);
    }
    echo "<script>opener.location.reload(); self.close();</script>";
    exit;
}

if ($_GET['code']) {
    
        $headers = headers_list();
        foreach ($headers as $header) {
            if (!preg_match('~^Set-Cookie: PHPSESSID=~', $header)) continue;
            $header = preg_replace('~; secure(; HttpOnly)?$~', '', $header) . '; secure; SameSite=None';
            echo $header."<br>";
            header($header, false);
        }
        
    $url = "https://kauth.kakao.com/oauth/token";
    $url.= sprintf("?client_id=%s&grant_type=authorization_code&redirect_uri=%s&code=%s",
        $mw_kakao_config['client_id'], urlencode($mw_kakao_config['callback']), $_GET['code']);

    $ch = curl_init();  
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt ($ch, CURLOPT_SSLVERSION,1); 
    curl_setopt ($ch, CURLOPT_HEADER, 0); 
    curl_setopt ($ch, CURLOPT_POST, 0);
    curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt ($ch, CURLOPT_TIMEOUT, 30); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($ch);       
    curl_close($ch);

    $json = json_decode($result, true);

        //echo $url;
        //print_r($json);
        //exit;
        
    if ($json['access_token']) {
        set_session("access_token", $json['access_token']);

        echo "<script>location.reload()</script>";
        exit;
    }
    else
    {
        //print_r($json);
        alert_close("로그인 실패");
        }
        
    exit;
}

if (!$_SESSION['access_token'] ) {
        $headers = headers_list();
        foreach ($headers as $header) {
            if (!preg_match('~^Set-Cookie: PHPSESSID=~', $header)) continue;
            $header = preg_replace('~; secure(; HttpOnly)?$~', '', $header) . '; secure; SameSite=None';
            //echo $header."<br>";
            header($header, false);
        }
        
    $url = "https://kauth.kakao.com/oauth/authorize";
    $url.= sprintf("?client_id=%s&response_type=code&redirect_uri=%s",
        $mw_kakao_config['client_id'], urlencode($mw_kakao_config['callback']));


    header("location: ".$url);
    exit;
}

?>

이제는 추억에 되어버린 배추를 아직 쓰고 있습니다 

배추빌더가 사라진후 업데이트 할때마다 고생입니다 

크롬 80 https://sir.kr/co_notice/1299 <-- 문제를 해결하니

카드 결제는 무리 없이 돌아가는데

 

배추쇼설 로그인에서 카카오 로그인이 계속 로그인실패로 뜹니다

PC에서는 카카오로그인이 되는대 스마트폰에서만 계속 쇼셜로그인 안되네요 

 

어디를 고쳐야할지 매번 선배님들에게 질문드려서 죄송하고 감사합니다 

이 질문에 댓글 쓰기 :

답변 2

Redirect URI 설정: Redirect URI가 올바른지 확인해보세요.

그리고 도메인과 경로가 정확해야 합니다. 

즉 모바일 앱의 경우 "kakao${카카오앱키}://"와 같은 형식이어야 합니다.


 

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

회원로그인

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