로그인
/**
* 카카오톡 로그인
* response 값으로 유저의 snsKey, snsType는 필수로 form안에 append 처리합니다.
*/
function kakaoLogin(params) {
Kakao.init(params.key);
Kakao.isInitialized();
$(params.button).on('click', function() {
loginWithKakao();
});
function loginWithKakao() {
Kakao.Auth.login({
success : function(response) {
Kakao.API.request({
url:'/v2/user/me',
success: function(result) {
var accessToken = Kakao.Auth.getAccessToken(); // 액세스 토큰 할당
Kakao.Auth.setAccessToken(accessToken); // 액세스 토큰 사용하게 등록
// 필수 snsType, snsKey
params.form.append([
$('<input />', {'type' : 'hidden', 'name' : 'snsKey' , 'value' : result.id}),
$('<input />', {'type' : 'hidden', 'name' : 'snsType' , 'value' : 'kakaotalk'}),
$('<input />', {'type' : 'hidden', 'name' : 'accessToken' , 'value' : accessToken})
]);
// 추가 요청 값
var dataArray = new Array();
if (result.kakao_account) {
$.each(result.kakao_account, function(key, val) {
if (typeof val == 'object') {
$.each(val, function(smallKey, smallVal) {
dataArray[smallKey] = smallVal;
});
} else {
dataArray[key] = val;
}
});
}
$.each(params.request, function(key, val) {
params.form.append($('<input />', {'type' : 'hidden', 'name' : val , 'value' : dataArray[val]}));
});
params.form.submit();
},
fail : function(error) {
console.log('카카오톡과 연결이 완료되지 않았습니다. \n다시 시도해주시기 바랍니다.');
}
})
},
fail : function(error) {
console.log('카카오톡과 연결 실패하였습니다. \n다시 시도해주시기 바랍니다.');
},
})
}
};
로그아웃
/**
* 카카오톡 로그아웃
**/
function kakaoLogout(kakaoKey) {
Kakao.init(kakaoKey); // 초기화
Kakao.isInitialized();
if (!Kakao.Auth.getAccessToken()) { // 토큰이 있는지 확인 (토큰 가져와보기)
console.log('Not logged in.');
return;
}
Kakao.Auth.logout(function() { // 카카오 로그아웃
console.log(Kakao.Auth.getAccessToken());
});
};
중요한 것은, Kakao jdk를 초기화 시켜주는 것이고.
후에 쓰일 것을 생각해서 최대한 게으르게 모듈화를 해서 만들었다.
카카오 비지니스 앱 등록만으로 쓰일 수 있게 해놨는데, 싱크는 달라지나.. 모르겠다. 추후에 업데이트해야지.
/action값 지정과 , /action 경로(컨트롤러)에서 회원 가입&로그인 처리 등을 을 한다.
연결끊기 (탈퇴)
Kakao.init(카카오앱키);
Kakao.isInitialized();
Kakao.Auth.setAccessToken(사용자액세스 키);
Kakao.API.request({
url: '/v1/user/unlink',
success: function(response) {
console.log(response);
callbackFunction(); // 연결끊기(탈퇴)성공시 서버에서 처리할 함수
},
fail: function(error) {
alert('탈퇴처리가 미완료되었습니다. \n관리자에게 문의하시기 바랍니다.');
console.log(error);
}
});
*댓글과 좋아요는 힘이 됩니다.
'FRONT > javascript' 카테고리의 다른 글
숫자 카운팅 모션 (정한 숫자와 시간에 맞게 올라가는 모션) (0) | 2021.07.05 |
---|---|
Youtube API 다중 동영상 제어 (0) | 2021.07.01 |
Youtube API - html을 삽입하는 두가지 방법 (0) | 2021.07.01 |
Instagram AIP - 웹사이트에 피드 로드하기. (0) | 2021.07.01 |
페럴렉스 스크롤링(Parallax Scrolling) (2) | 2021.06.30 |