2026, 새로운 도약을 시작합니다.

회원가입 방식이 SNS인지 직접 가입인지 알 수 있는 방법이 있나요? 채택완료

제목 그대로입니다.

이게 필요해져서 찾고 있는데 쉽지 않네요^^

SNS 소셜로 가입한 회원인지 사이트에서 회원가입 버튼 눌러 직접 가입한 사람인지

알 수 있는 방법이 있을까요?

SNS로 가입한 경우 회원 탈퇴시 비번을 묻고 있어서 이걸 이메일로 탈퇴 URL이나 인증 번호를 보내서

처리하려고 하고 있는데 구분할 수 있는 변수가 있는지 궁금하네요..

SQL DB를 봐도 딱히 없는거 같기도 하고 ..

답변 2개

채택된 답변
+20 포인트

https://github.com/gnuboard/gnuboard5/blob/master/plugin/social/register_member_update.php#L197

Copy


    //소셜 로그인 계정 추가

    if( function_exists('social_login_success_after') ){

        social_login_success_after($mb, '', 'register');

    }

https://github.com/gnuboard/gnuboard5/blob/master/plugin/social/includes/functions.php#L822

Copy


//소셜 로그인 후 계정 업데이트

function social_login_success_after($mb, $link='', $mode='', $tmp_create_info=array()){

    global $g5, $config;

    ...

    social_user_profile_replace($mb_id, $provider, $user_profile);

    ...

    return $link;

}

https://github.com/gnuboard/gnuboard5/blob/master/plugin/social/includes/functions.php#L206

Copy


function social_user_profile_replace( $mb_id, $provider, $profile ){

    ...

        'mp_register_day' => ! empty($row) ? "'".$row['mp_register_day']."'" : "'". G5_TIME_YMDHIS . "'",

    ...

}

다음 두 항목을 비교해보면 되지 않을까 싶습니다.

$g5['member_table'] 의 mb_datetime

$g5['social_profile_table'] 의 mp_register_day

Copy


/*

SELECT 

    COUNT(1) cnt 

FROM 

    g5_member gm INNER JOIN g5_member_social_profiles gmsp 

    ON gmsp.mb_id = gm.mb_id 

WHERE 

        gm.mb_id = 'member-id' 

    AND UNIX_TIMESTAMP(gmsp.mp_register_day) - UNIX_TIMESTAMP(gm.mb_datetime) BETWEEN 0 AND 5

;

*/

function get_member_join_from_sns($mb_id, $seconds_margin = 5) {

    $query = "SELECT ... WHERE gm.mb_id = '{$mb_id}' ... BETWEEN 0 AND {$seconds_margin}"

    $row = sql_fetch($query);

    if ($row['cnt'] == 1) {

        return true;

    } else {

        return false;

    }

}

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

저 방법은 기존 회원이 SNS연동해도 작동 되는거 아닌가요?

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고