소셜 회원가입 코드 정리
This commit is contained in:
1 parent
604531906a
commit
7dba46f650
9 files changed
+122
-25
No files matched your search
@@ -46,7 +46,7 @@ function get_social_convert_id($identifier, $service)
|
||||
|
||||
function get_social_callbackurl($provider, $no_domain=false){
|
||||
|
||||
$base_url = SOCIAL_LOGIN_BASE_URL;
|
||||
$base_url = G5_SOCIAL_LOGIN_BASE_URL;
|
||||
|
||||
if( $provider === 'kakao' && $no_domain ){
|
||||
$base_url = '/'.ltrim(parse_url($base_url, PHP_URL_PATH), '/');
|
||||
@@ -97,7 +97,7 @@ function social_login_get_provider_adapter( $provider )
|
||||
return $g5['hybrid_auth']->authenticate($provider);
|
||||
}
|
||||
|
||||
$base_url = SOCIAL_LOGIN_BASE_URL;
|
||||
$base_url = G5_SOCIAL_LOGIN_BASE_URL;
|
||||
$hauth_time = time();
|
||||
|
||||
$connect_data = array(
|
||||
@@ -268,7 +268,7 @@ function social_user_profile_replace( $mb_id, $provider, $profile ){
|
||||
|
||||
function social_build_provider_config($provider){
|
||||
$setting = array(
|
||||
'base_url' => G5_SOCIAL_BASE_URL.'/',
|
||||
'base_url' => https_url(G5_PLUGIN_DIR.'/'.G5_SOCIAL_LOGIN_DIR).'/',
|
||||
'providers' => array(
|
||||
$provider => array(
|
||||
'enabled' => true,
|
||||
@@ -633,6 +633,50 @@ function social_register_member_check($member){
|
||||
return $member;
|
||||
}
|
||||
|
||||
function social_profile_img_resize($path, $file_url, $width, $height){
|
||||
|
||||
list($w, $h, $ext) = @getimagesize($file_url);
|
||||
if( $w && $h && $ext ){
|
||||
$ratio = max($width/$w, $height/$h);
|
||||
$h = ceil($height / $ratio);
|
||||
$x = ($w - $width / $ratio) / 2;
|
||||
$w = ceil($width / $ratio);
|
||||
|
||||
$tmp = imagecreatetruecolor($width, $height);
|
||||
|
||||
if($ext == 1){
|
||||
$image = imagecreatefromgif($file_url);
|
||||
} else if($ext == 3) {
|
||||
$image = imagecreatefrompng($file_url);
|
||||
} else {
|
||||
$image = imagecreatefromjpeg($file_url);
|
||||
}
|
||||
imagecopyresampled($tmp, $image,
|
||||
0, 0,
|
||||
$x, 0,
|
||||
$width, $height,
|
||||
$w, $h);
|
||||
|
||||
switch ($ext) {
|
||||
case '2':
|
||||
imagejpeg($tmp, $path, 100);
|
||||
break;
|
||||
case '3':
|
||||
imagepng($tmp, $path, 0);
|
||||
break;
|
||||
case '1':
|
||||
imagegif($tmp, $path);
|
||||
break;
|
||||
}
|
||||
|
||||
chmod($path, G5_FILE_PERMISSION);
|
||||
|
||||
/* cleanup memory */
|
||||
imagedestroy($image);
|
||||
imagedestroy($tmp);
|
||||
}
|
||||
}
|
||||
|
||||
function social_is_login_check(){
|
||||
|
||||
//소셜 로그인이 맞는지 체크합니다.
|
||||
@@ -761,15 +805,27 @@ function social_login_success_after($mb, $link='', $mode='', $tmp_create_info=ar
|
||||
}
|
||||
|
||||
if($mode=='register'){ //회원가입 했다면
|
||||
|
||||
//메일인증을 사용한다면
|
||||
if( defined('G5_SOCIAL_CERTIFY_MAIL') && G5_SOCIAL_CERTIFY_MAIL && $config['cf_use_email_certify'] ){
|
||||
|
||||
//로그인 처리 한다.
|
||||
// 회원아이디 세션 생성
|
||||
set_session('ss_mb_id', $mb['mb_id']);
|
||||
// FLASH XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다. 관리자에서 검사함 - 110106
|
||||
set_session('ss_mb_key', md5($mb['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']));
|
||||
} else {
|
||||
//로그인 처리 합니다.
|
||||
// 회원아이디 세션 생성
|
||||
set_session('ss_mb_id', $mb['mb_id']);
|
||||
|
||||
set_session('ss_mb_reg', $mb['mb_id']);
|
||||
}
|
||||
|
||||
if( !empty($user_profile->photoURL) ){ //회원 프로필 사진이 있다면
|
||||
//해당 처리
|
||||
|
||||
$mb_dir = G5_DATA_PATH.'/member/'.substr($mb_id,0,2);
|
||||
@mkdir($mb_dir, G5_DIR_PERMISSION);
|
||||
@chmod($mb_dir, G5_DIR_PERMISSION);
|
||||
$dest_path = "$mb_dir/$mb_id.gif";
|
||||
|
||||
social_profile_img_resize($dest_path, $user_profile->photoURL, $config['cf_member_icon_width'], $config['cf_member_icon_height'] );
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
@@ -69,6 +69,13 @@ $data = array(
|
||||
'mb_name' => $mb_name,
|
||||
);
|
||||
|
||||
$mb_email_certify = G5_TIME_YMDHIS;
|
||||
|
||||
//메일인증을 사용한다면
|
||||
if( defined('G5_SOCIAL_CERTIFY_MAIL') && G5_SOCIAL_CERTIFY_MAIL && $config['cf_use_email_certify'] ){
|
||||
$mb_email_certify = '';
|
||||
}
|
||||
|
||||
// 회원정보 입력
|
||||
$sql = " insert into {$g5['member_table']}
|
||||
set mb_id = '{$mb_id}',
|
||||
@@ -77,7 +84,7 @@ $sql = " insert into {$g5['member_table']}
|
||||
mb_nick = '{$mb_nick}',
|
||||
mb_nick_date = '".G5_TIME_YMD."',
|
||||
mb_email = '{$mb_email}',
|
||||
mb_email_certify = '".G5_TIME_YMDHIS."',
|
||||
mb_email_certify = '".$mb_email_certify."',
|
||||
mb_today_login = '".G5_TIME_YMDHIS."',
|
||||
mb_datetime = '".G5_TIME_YMDHIS."',
|
||||
mb_ip = '{$_SERVER['REMOTE_ADDR']}',
|
||||
@@ -107,20 +114,39 @@ if($result) {
|
||||
mailer($mb_nick, $mb_email, $config['cf_admin_email'], $subject, $content, 1);
|
||||
}
|
||||
|
||||
set_session('ss_mb_id', $mb_id);
|
||||
|
||||
set_session('ss_mb_reg', $mb_id);
|
||||
|
||||
//소셜 로그인 계정 추가
|
||||
if( function_exists('social_login_success_after') ){
|
||||
$mb = get_member($mb_id);
|
||||
social_login_success_after($mb, '', 'register');
|
||||
}
|
||||
|
||||
// 메일인증을 사용한다면
|
||||
if( ! $mb_email_certify ){
|
||||
$subject = '['.$config['cf_title'].'] 인증확인 메일입니다.';
|
||||
|
||||
// 어떠한 회원정보도 포함되지 않은 일회용 난수를 생성하여 인증에 사용
|
||||
$mb_md5 = md5(pack('V*', rand(), rand(), rand(), rand()));
|
||||
|
||||
sql_query(" update {$g5['member_table']} set mb_email_certify2 = '$mb_md5' where mb_id = '$mb_id' ");
|
||||
|
||||
$certify_href = G5_BBS_URL.'/email_certify.php?mb_id='.$mb_id.'&mb_md5='.$mb_md5;
|
||||
|
||||
ob_start();
|
||||
include_once (G5_BBS_PATH.'/register_form_update_mail3.php');
|
||||
$content = ob_get_contents();
|
||||
ob_end_clean();
|
||||
|
||||
mailer($config['cf_admin_email_name'], $config['cf_admin_email'], $mb_email, $subject, $content, 1);
|
||||
}
|
||||
|
||||
// 사용자 코드 실행
|
||||
@include_once ($member_skin_path.'/register_form_update.tail.skin.php');
|
||||
|
||||
goto_url(G5_HTTP_BBS_URL.'/register_result.php');
|
||||
|
||||
} else {
|
||||
|
||||
alert('회원 가입 오류!', G5_URL );
|
||||
|
||||
}
|
||||
|
||||
// 사용자 코드 실행
|
||||
@include_once (get_social_skin_path().'/register_form_update.tail.skin.php');
|
||||
|
||||
goto_url(G5_HTTP_BBS_URL.'/register_result.php');
|
||||
?>
|
||||
Reference in new issue
Block a user