diff --git a/modules/member/conf/module.xml b/modules/member/conf/module.xml index a2fe0fbee..17b725099 100644 --- a/modules/member/conf/module.xml +++ b/modules/member/conf/module.xml @@ -29,6 +29,8 @@ + + diff --git a/modules/member/lang/ko.lang.php b/modules/member/lang/ko.lang.php index b2000f201..8c70dc192 100644 --- a/modules/member/lang/ko.lang.php +++ b/modules/member/lang/ko.lang.php @@ -15,6 +15,7 @@ $lang->denied_user_id = '사용금지된 아이디입니다'; $lang->null_user_id = '사용자 아이디를 입력해주세요'; $lang->null_password = '비밀번호를 입력해주세요'; + $lang->invalid_authorization = '인증이 되지 않았습니다'; $lang->invalid_user_id= '존재하지 않는 사용자 아이디입니다'; $lang->invalid_password = '잘못된 비밀번호입니다'; $lang->allow_mailing = '메일링 가입'; @@ -48,6 +49,7 @@ $lang->default_friend_group = '그룹 미지정'; $lang->member_info = '회원 정보'; $lang->current_password = '현재 비밀번호'; + $lang->openid = 'OpenID'; $lang->search_target_list = array( 'user_id' => '아이디', diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 2359b3166..fc294a6c5 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -31,6 +31,61 @@ return $this->doLogin($user_id, $password); } + /** + * @brief openid로그인 + **/ + function procMemberOpenIDLogin() { + ob_start(); + require('./modules/member/openid_lib/class.openid.php'); + require_once('./modules/member/openid_lib/libcurlemu.inc.php'); + + $user_id = Context::get('user_id'); + + $openid = new SimpleOpenID(); + + $openid->SetIdentity($user_id); + $openid->SetTrustRoot('http://' . $_SERVER["HTTP_HOST"]); + + $openid->SetRequiredFields(array('email','fullname','dob')); + + if (!$openid->GetOpenIDServer()) { + $error = $openid->GetError(); + $this->setError(-1); + $this->setMessage($error['description']); + } else { + $openid->SetApprovedURL( getUrl('','module','member','act','procMemberOpenIDValidate') ); + $url = $openid->GetRedirectURL(); + $this->add('redirect_url', $url); + } + ob_clean(); + } + + /** + * @brief openid 인증 체크 + **/ + function procMemberOpenIDValidate() { + ob_start(); + require('./modules/member/openid_lib/class.openid.php'); + require_once('./modules/member/openid_lib/libcurlemu.inc.php'); + + $openid = new SimpleOpenID; + $openid->SetIdentity($_GET['openid_identity']); + $openid_validation_result = $openid->ValidateWithServer(); + + if ($openid_validation_result == true) { + } else if($openid->IsError() == true) { + $error = $openid->GetError(); + return $this->stop($error['description']); + } else { + return $this->stop('invalid_authorization'); + } + ob_clean(); + print ""; + print_r($_REQUEST); + print ""; + } + + /** * @brief 로그아웃 **/ diff --git a/modules/member/skins/default/css/module.css b/modules/member/skins/default/css/module.css new file mode 100644 index 000000000..a3a14ad85 --- /dev/null +++ b/modules/member/skins/default/css/module.css @@ -0,0 +1,10 @@ +@charset "utf-8"; + +/* pathNavigation */ +.openid_user_id { + background: url(../images/login-bg.gif) left no-repeat; + background-color: #ffffff; + background-position: 0 50%; + color: #000; + padding-left: 18px; +} diff --git a/modules/member/skins/default/filter/openid_login.xml b/modules/member/skins/default/filter/openid_login.xml new file mode 100644 index 000000000..61bba2ff2 --- /dev/null +++ b/modules/member/skins/default/filter/openid_login.xml @@ -0,0 +1,10 @@ + +
+ + + + + + + +
diff --git a/modules/member/skins/default/images/login-bg.gif b/modules/member/skins/default/images/login-bg.gif new file mode 100644 index 000000000..cde836c89 Binary files /dev/null and b/modules/member/skins/default/images/login-bg.gif differ diff --git a/modules/member/skins/default/js/member.js b/modules/member/skins/default/js/member.js index fbb7122f8..5fd7d21a8 100644 --- a/modules/member/skins/default/js/member.js +++ b/modules/member/skins/default/js/member.js @@ -86,6 +86,13 @@ function completeLogout(ret_obj) { location.href = current_url.setQuery('act',''); } +/* 오픈아이디 로그인 후 */ +function completeOpenIDLogin(ret_obj, response_tags) { + var redirect_url = ret_obj['redirect_url']; + location.href = redirect_url; +} + + /* 이미지 이름, 마크 삭제 */ function doDeleteImageName(member_srl) { var fo_obj = xGetElementById("fo_insert_member"); diff --git a/modules/member/skins/default/login_form.html b/modules/member/skins/default/login_form.html index 2b8ef6a73..945833735 100644 --- a/modules/member/skins/default/login_form.html +++ b/modules/member/skins/default/login_form.html @@ -1,8 +1,12 @@ - + + + + +
- +
@@ -28,7 +32,21 @@
+
+ +
+ + + + + + + +
{$lang->openid}
+ + +