테스트 사이트 - 개발 중인 베타 버전입니다

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

슈퍼노비스 2년 전 조회 1,951

제목 그대로입니다.

 

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

 

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

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

 

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

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

 

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

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

답변 2개

채택된 답변
+20 포인트
2년 전

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

</p>

<p>    //소셜 로그인 계정 추가

    if( function_exists('social_login_success_after') ){

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

    }</p>

<p>

 

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

</p>

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

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;

}</p>

<p>

 

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

</p>

<p>function social_user_profile_replace( $mb_id, $provider, $profile ){</p>

<p>    ...</p>

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

<p>    ...</p>

<p>}</p>

<p>

 

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

$g5['member_table'] 의 mb_datetime

$g5['social_profile_table'] 의 mp_register_day

 

</p>

<p>/*</p>

<p>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

;</p>

<p>*/</p>

<p>function get_member_join_from_sns($mb_id, $seconds_margin = 5) {</p>

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

<p>    $row = sql_fetch($query);</p>

<p>    if ($row['cnt'] == 1) {</p>

<p>        return true;</p>

<p>    } else {</p>

<p>        return false;</p>

<p>    }</p>

<p>}</p>

<p>

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

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

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

답변에 대한 댓글 1개

슈퍼노비스
2년 전
저 방법은 기존 회원이 SNS연동해도 작동 되는거 아닌가요?

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

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

로그인