안녕하세요.
워드프레스, php, js 등으로 사이트를 만들고 있습니다. 공부와 구글링으로 직접 테마를 만들어서 사용하고 있습니다.
꼭 필요한 것 아니면, 가능하면 플러그인을 자제하려합니다. 사이트가 느려지고 쓰지않는 옵션들까지 다 붙어 사이트가 무거워지는 것 같아서요. (지금도 약간 느리거든요ㅠ)
카카오 소셜 로그인을 넣으려 합니다.
https://developers.kakao.com/docs/js
여기 보니 인증받고 사용자 정보를 내어 오는 것 까지는 알 수 있을 것 같습니다. 그런데, 그 이후,
"받은 정보로 어떻게 로그인 상태로 만들지?"라는 의문이 생기는데 구글링 해봐도 알기 어렵네요. 여러 가지 의문이 생깁니다.
1. 카카오에 인증받아 사용자 정보를 받아와서, 내 사이트에 db 에 사용자 등록을 해야 하나요?
2. 보통 로그인은 id와 비밀번호를 입력해야 로그인이 되는데, 그러면 이 상황에서는 제가 직접 로그인을 시키는 함수를 넣어야 하나요?
3. 재방문했을 때는 어떻게 처리를 해야 하는지..
등등..
관련 tutorial 같은 것이 없을까요? 카카오 개발자 사이트를 참고해도, access token 받아 사용자 정보를 얻어오는 것까지만 설명이 나와있네요. 이후 어떻게 처리를 해야 할지..ㅠ
조언을 구할 수 있을까요? 감사합니다.
안녕하세요~^^
개념적인 부분만 간략하게 설명해보겠습니다.
디테일한 부분은 저마다 다르기 때문에 직접 코드 만들어 보시면서 대응하셔야 할 듯합니다.
우선 카카오 API를 사용해서 사용자 정보를 받아온 다음
1. 카카오에서 보내준 id(고유번호 등) 값을 사용해서 이미 워드프레스에 등록된 정보가 있는지 검색합니다.
get_users() 같은 함수가 도움이 될 듯합니다.
2. 검색된 정보가 없다면 새로 사용자 정보를 등록합니다.
wp_create_user() 같은 함수가 도움이 될 듯합니다.
위 두 가지 상황 중 한 가지 상황이 있을 텐데요.
저장된 사용자 정보가 있다면 그대로 활용하시면 되고, 저장된 게 없다면 새로 생성하시면 됩니다.
그리고 최종적으로 wp_set_current_user() 함수 등을 사용해서 아래처럼 로그인 처리를 하시면 되겠습니다.
$user_id = 12345;
$user = get_user_by( 'id', $user_id );
if( $user ) {
wp_set_current_user( $user_id, $user->user_login );
wp_set_auth_cookie( $user_id );
do_action( 'wp_login', $user->user_login );
}
고맙습니다.