소셜로그인 플러그인 > 그누보드5 플러그인

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누보드5 플러그인

그누보드는 다양한 기능을 추가하기 쉽습니다.

소셜로그인 플러그인 정보

소셜로그인 플러그인

첨부파일

gnuboard5.oauth.zip (31.1K) 1579회 다운로드 2016-06-15 10:08:21

본문

소셜서비스를 이용해 그누보드5에서 회원가입없이 바로 로그인처리되는 소셜로그인 플러그인입니다.
지원되는 서비스는 네이버, 카카오, 페이스북, 구글+ 입니다.

이 플러그인은 회원가입과는 연동되지 않습니다.

첨부된 플러그인 압축 파일을 다운로드 후 압축해제 후 각 폴더에 맞게 파일을 계정에 업로드하시며 됩니다.
단 login.skin.php 파일은 코드 예시를 위해 첨부된 것으로 파일을 덮어쓰게 되면 로그인 스킨이 변경되니
주의해주시기 바랍니다.

소셜로그인 버튼의 출력은 첨부된 login.skin.php 파일을 참고하셔서 현재 사용 중이신 login.skin.php 파일의
적당한 위치에 아래 코드를 추가해주시면 되며 css 수정은 style.css 파일에서 하시면 됩니다.


<?php
// 소셜로그인 버튼
include_once(G5_PLUGIN_PATH.'/oauth/login.skin.inc.php');
?>


소셜로그인플러그인을 사용하기 위해서는 로그인 앱을 생성하셔야 하며 앱은 아래 각 서비스에서
직접 추가 생성하셔야 합니다.

페이스북 신청 url : https://developers.facebook.com/apps
 
구글 신청 url : https://console.developers.google.com
 
네이버 신청 url : https://nid.naver.com/devcenter/register.nhn
 
카카오 신청 url : https://developers.kakao.com/apps/new


앱생성 후 발급된 API 키 등의 정보를 extend/oauth.extend.php 파일에 설정합니다.
모든 서비스를 꼭 설정하셔야 하는 것은 아니며 사용하시려는 서비스만 설정하시면 됩니다.

앱설정 때 callback 또는 Redirect URL 은 아래의 예시와 같이 설정하셔야 합니다.

페이스북 : http://example.com/plugin/oauth/callback.php

구글+ : http://example.com/plugin/oauth/callback.php?service=google

네이버 : http://example.com/plugin/oauth/callback.php

카카오 : http://example.com/plugin/oauth/callback.php?service=kakao
추천
27

댓글 전체

4가지 다 잘 되신다니 문의드려도 될까요. 네이버와 페이스북은 잘 되는데 구글은 redirect_uri missmatch라는 에러가 발생하고, 카카오도 잘 되지 않는군요. 혹시 성공한 사례를 예시로 보여줄 수 없을까요?
api 승인된 리디렉션 URI 주소 설정이 잘못되었을경우 안될겁니다.
구글은 승인된 리디렉션 URI 를 두개 설정해보세요

www.xxx.com
xxx.com 둘다 넣으세요.

카카오도 플랫폼 웹 설정으로 해서 도메인 redirect Path 설정만 잘해주면 됩니다.
http://lyc0815.iptime.org/gnuboard5  홈페이지 주소인데 사이트주소:http://lyc0815.iptime.org    리디렉션주소  /gnuboard5  로 하면 에러가 발생합니다.  혹시 어떻게 수정하면 될까요?  귀찮게 하는것 같아 미안합니다.
감사합니다~~
그런데 페이스북에서 설정할 때 '앱 도메인'은 어떤걸 넣어야 하나요?
홈피주소나 말씀하신 Redirect URL를 넣으면 아래와 같은 메세지가 나오네요... ㅠㅠ
" 앱 도메인은 보안 캔버스 URL, 모바일 사이트 URL, Unity 이진 URL, 사이트 URL 또는 보안 페이지 탭 URL의 도메인과 일치해야 합니다. 다음 도메인을 수정하세요: "
네이버를 적용해서 해봤는데...
기존아이디와 네이버로그인연동아이디가 별개의 아이디로 작동하네요.
네이버연동아이디로는 본인이 쓴 글 등이 확인 되지 않네요 ㅠㅠ
아무튼 감사합니다~
이 플러그인은 회원가입하지 않은 상태에서 회원 로그인한 것처럼
임시로 처리하는 것입니다. 당연히 기존 회원정보와는 연동이 전혀
되지 않기 때문에 게시글 등이 확인되지 않습니다.

게시글 설명에도 회원가입과는 연동되지 않는다고 안내하고 있습니다.
감사합니다. 네이버는 이상없이 잘 되는데 카카오톡은 에러가 발생합니다. 주소를 살펴보면 http://lyc0815.iptime.org//plugin/    // 두개가 들어가는 것이 문제인것 같은데..어디를 수정해야 할까요?  그리고 회원을 그룹으로 나누어 나서 그룹에 속하지 않으면 게시판이용이 불가한데 이런 경우 어떻게 처리해야 권한을 주고 사용할 수 있을까요?
callback url 은 설정된대로 넘겨주게 되어 있습니다. extend/oauth.extend.php 파일의
G5_OAUTH_CALLBACK_URL 설정입니다.

그룹 등의 추가적인 권한이 필요한 경우는 callback.php 파일에서 권한을 직접 지정해주는
등의 코드 수정 작업을 직접 하셔야 합니다.
스마툴즈 빌더 에서  적용을 할려고 하는데  적용이 안돼네요.. ㅜ.ㅡ
소셜 로그인 플러그인 자체가  안나오는데  왜이러는지 모르겠어요..
패스 경로가 엇갈려서 그런건지.. 

스마툴즈 빌더
http://sir.kr/g5_builder/2551#c_2574
카카오의 경우 return 값에서
["authorize_url"]=> string(39) "https://kauth.kakao.com/oauth/authorize" ["token_url"]=> string(35) "https://kauth.kakao.com/oauth/token" ["profile_url"]=> string(33) "https://kapi.kakao.com/v1/user/me" ["profile"]=> NULL }

profile값을 받아오질 못하네요...
카카오 개발자쪽에서 뭔가 설정을 해줘야 하는 부분이 있는건가요 ㅡ.ㅜ
자답합니다. ㅡ,.ㅜ

/plugin/oauth/kakao/oauth.lib.php 파일수정


    function get_profile()
    {
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $this->profile_url);
        curl_setopt($ch, CURLOPT_POST, 1);
		// rido 원활하게 작동하지 않아서 추가됨
		curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer '.$this->access_token));

        $json = curl_exec($ch);
        curl_close($ch);

        if($json)
            $this->profile = json_decode($json);
    }


카카오 개발자에서 검색하고 처리한부분에 주석처리 했습니다.
저 질문이 있는데요.... callback 및 URL을 http://example.com/plugin/oauth/callback.php?service=kakao
여기로 가라고 하셨는데.... 들어가서 어디로 가야하는것인가요?
카카오개발자 페이지에서 앱 생성 후 콜백url 입력 부분에 위의 예시와 같이 입력하는 것입니다. example.com 은 실제 사이트 도메인으로 변경하셔야 합니다.

이건왜이럴까요 ㅠㅠㅠㅠㅠㅠ....xampp로 개인 가상서버에서는 문제없이됬는대......
운영중인 사이트에 적용하려니까 ㅠㅠ이럽니다 ㅠㅠㅠㅠ
혹시 카카오 로그인할때 프로필 이미지를 못가져오시는 분들은 이렇게 해보세요
oauth.lib.php에 아래 메소드를 추가해주세요

function get_talk_profile()
    {
    $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, "https://kapi.kakao.com/v1/api/talk/profile");
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer '.$this->access_token));

        $json = curl_exec($ch);
        curl_close($ch);

        if($json)
            $this->profile = json_decode($json);
    }

callback.php에 $member = array() 끝나는 다음에 추가해주세요.
$oauth->get_talk_profile();
$member['mb_picture'] = $oauth->profile->profileImageURL;

프로필 이미지를 카카오톡 프로필로 직접 요청해서 가져옵니다.
감사합니다. 네이버는 성공했구요 ^^

페이스북 : http://example.com/plugin/oauth/callback.php

페이스북 설정중인데 이 항목을 어디에 입력해야하는지 못찾겠습니다 ㅜ.ㅜ
카카오쪽 로그인부분에서

서비스 장애 또는 정보가 올바르지 않습니다.
오류가 자꾸 발생해서 이것저것 해보다보니 프로필 데이터 요청시 Request Entity Too Large 에러가 발생하고 있었습니다.
/plugin/oauth/kakao/oauth.lib.php 94라인에서
curl_setopt($ch, CURLOPT_POST, 1);
을 0으로 변경해주고 해결했습니다.
카카오 측에서는
CURLOPT_POST 을 설정하셨는데
CURLOPT_POSTFIELDS 는 설정이 안되어 있어서 그럴지도 모르겠네요. 라고 남긴 답변이 있었는데, 해당 부분도 CURL 요청시 CURLOPT_POST는 true로 설정되어 있지만, 실제로 POSTFIELDS는 전송되지 않고, 헤더부분에서 oauth 토큰만 전송해서 서버에서 에러처리하는 문제가 아닐까 생각해봅니다.
페이스북 소셜로그인 아이디와 시크릿키를 넣었는데 callback설정은 어떻게 하는지 잘 모르겠네요
페이스북 로그인을 하니 이렇게 에러가 뜨네요..

Fatal error: Call to undefined function curl_init() in C:\APM_Setup\works\dain_aesthetic\plugin\oauth\facebook\oauth.lib.php on line 67
cURL 관련 함수를 사용하지 못해서 발생하는 오류입니다.
phpinfo() 함수를 통해 curl 관련 모듈이 로드되어 있는지 확인하시고
로드되지 않았다면 curl 모듈을 로드해 주셔야 합니다.
고맙습니다. 넘 초보라서 부끄럽습니다만.... 다른 건 잘되는데 구글만 그림과 같은 오류가 납니다. 원인이 무얼까요...(그누는 최신버전입니다.)
"토큰 정보가 올바르지 않습니다."
편리님, 다른건 다 되는데, 구글에서만 해당 문구가 출력됩니다.
PC에서는 되는데, 스마트폰 인터넷으로만 접속하면 문구가 뜨는데 해결방법이 있을까요?
이미지에 나온대로 disallowed user agent 라고 하네요.
크롬 등의 브라우저에서는 정상작동하고 web view 방식의
앱에서는 이 플러그린을 사용할 수 없다는 뜻으로 봐야할 것 같습니다.
web view 등의 앱에서는 별도로 제작을 해야할 듯 합니다.
앱에서 구동한게 아니라, 그냥 스마트폰 기본 인터넷에서 구동한 것 입니다.
네이버랑 페이스북은 잘 되는데, 구글만 저런 오류메세지가 뜨네요..

점검해 볼 부분이 있을까요?

지금 솔소님의 민트테마를 사용중인데, 혹시 민트테마에서만 일어나는 고질적인 문제일 수도 있을까요?

p.s

아.. 참고로 v2 버전으로 적용하였습니다.
지금보니 이 게시물은 이전버전 게시물이네요..^^
+ 추가내용 2017.04.08 (00:53분)
 
스마트폰 기본 인터넷브라우저 말고,
크롬 브라우저를 통해서 접속하니까 로그인이 됩니다.
 
왜 스마트폰 기본 브라우저로는 안되는 걸까요?
제 휴대폰이 이상한걸까요??
그 기본 브라우저가 web view 방식이거나
그 브라우저의 user agent를 구글에서는 web view 방식인
것으로 보고 차단하는 것 중 하나 일 겁니다.
네이버 로그인폼은 http://www.abc.com/bbs/login.php  에서 정상적으로 작동하고 있습니다.
 
그런데, 네이버 로그인을 메인화면에서 노출시키기 위해 head.php 에서 아래와 같은 것은 넣었더니
로그인되면서 첨부파일처럼 인덱스화면으로 갑니다. 메인화면으로 정상적으로 가게 하려면
무엇을 추가해야 하는지요?

    <?php
    // 소셜로그인 버튼
    include_once(G5_PLUGIN_PATH.'/oauth/login.skin_naver.inc.php');
    ?>

기본 기능이나 코드가 아닌 수정한 경우에 대해서는 오류의 원인을
특정짓기 어렵기 때문에 답변이 어렵습니다. 직접 해결이 불가능하시다면
제작의뢰 등을 통해 개발자를 구하셔서 해결하셔야 합니다.
전체 504
그누보드5 플러그인 내용 검색

회원로그인

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