웹솔루션개발 22년 노하우! 해피CGI의 모든것

[해피CGI][cgimall] SNS 로그인을 직접 연결해서 사용하려면 어떻게해야 하나요? 본문

CGIMALL소개/자주하는질문

[해피CGI][cgimall] SNS 로그인을 직접 연결해서 사용하려면 어떻게해야 하나요?

해피CGI윤실장 2017. 5. 22. 09:27

솔루션에서 기본적으로 제공해드리는 SNS 로그인은 트위터, 페이스북, 구글 입니다.

그외 네이버, 다음 등은 고객님께서 연동 작업을 해주셔야 이용 가능합니다.



sns 로그인 작업시 ajax_sns_login.php 파일을 참고하셔서 생성해주시면 솔루션과의 연동이 용이할 것으로 보입니다.

 ajax_sns_login.php 파일에서

"# 이미 동일한 SNS로 로그인한 사례가 있는지 체크"  라는 주석 처리를 기준으로

가장 아래쪽 소스까지 참고를 하셔서 제작을 하시면 됩니다.

 

위 소스를 기준으로 상단에는 고객님께서 만드실 naver, daum 로그인 연동 및 로그인정보를 읽어오는 루틴,

검증하는 루틴을 만들어 넣으셔서

정상 로그인 처리가 될 때 값이 출력이 될 수 있는 환경을 만들어 보셔야 되겠습니다.

 

대략 적으로 만들어야 될 소스 구성은 아래와 같습니다.

1. SNS 사이트에서 정보를 받아오는 루틴 및 검증 루틴

2. 위 주석문 기준으로 아래쪽 소스에 해당하는 이미 회원가입이 된 SNS회원인지 체크

3. 회원가입이 되어 있지 않다면 회원가입 (insert)

4. 회원가입이 되어 있다면 패스워드만 랜덤값으로 변경 (update)

5. 이후 happy_member_login.php 파일로 아이디와 패스워드값 강제 전송

 

insert 시 주의점은 $sns_site입니다.

   $Sql     = "
          INSERT INTO
            $happy_member
          SET
            user_id   = "${sns_site}_$SNS[sns_id]",
            user_pass  = "$password_secret",
            user_name  = "$SNS[sns_name]",
            user_nick  = "$SNS[sns_username]",
            user_email  = "$SNS[sns_email]",
            photo1   = "$SNS[sns_image]",
            `group`   = "$happy_sns_member_group",
            sns_site  = "$sns_site",
            $forwarding
            reg_date  = now()
   ";

$sns_site 값은 naver 혹은 daum 과 같이 특정 구분 값으로 넣어주시면 됩니다.
 

$SNS[sns_id] 는 sns 사이트에서 넘겨주는 고유값으로 회원 구분을 위한 회원 아이디로 사용됩니다.

해당 값은 네이버나 다음에서 각 회원정보를 넘겨 줄때 고유키값을 넘겨주는데,

해당 고유키값을 저장하게 됩니다. 

 

이후 SNS 를 통해 로그인을 한 사람들에게 SNS아이콘을 출력하기 위해

inc/function.php 파일에서 $happy_sns_array  변수에 naver 혹은 daum 을 정의해주시면 됩니다.

$sns_site 에 정의된 값 (sns_site 필드에 저장된값)과 동일해야 하며

이부분은 sns 회원으로 로그인한 고객의 아이콘 등을 불러올때 사용됩니다.

 

sns 작업시 로그인 부분이 문제가 된다면 ajax_sns_login.php 파일의 로그인부분 참고하셔서

로그인 처리부분을 동일하게 작업하시면 큰 문제가 없을것으로 보입니다.

 

 

홈페이지바로가기 

Comments