YNICTE/FO/Views/Account/SNSLinkCallback.cshtml

110 lines
4.1 KiB
Plaintext

@{
Layout = null;
var naverClientId = ViewBag.naverClientID;
var kakaoClientId = ViewBag.kakaoClientID;
var googleClientId = ViewBag.googleClientID;
var jointype = ViewBag.Jointype;
}
<head>
<!-- SNS -->
@Html.Partial("./Partial/JS")
<script type="text/javascript" src="/js/naveridlogin_js_sdk_2.0.0.js"></script>
<script type="text/javascript" src="/js/kakao.js"></script>
<script src="https://apis.google.com/js/platform.js" async defer></script>
<meta name="google-signin-client_id" content="@googleClientId">
</head>
<div class="g-signin2" data-onsuccess="onGoogleLogIn" style="display:none"></div> @*구글로그인관련*@
<script>
$(document).ready(function () {
//네이버
if (@jointype == 2) {
window.resizeTo("500", "500");
var naverLogin = new naver.LoginWithNaverId(
{
clientId: "@naverClientId",
callbackUrl: "https://www.ynicte.nptc.kr/Account/SNSLinkCallback",
isPopup: false,
callbackHandle: true
}
);
naverLogin.init();
naverLogin.getLoginStatus(function (status) {
if (status) {
var email = naverLogin.user.getEmail();
var name = naverLogin.user.getName();
var uniqId = naverLogin.user.getId();
var profileImage = naverLogin.user.getProfileImage();
var birthday = naverLogin.user.getBirthday();
var age = naverLogin.user.getAge();
if (email == undefined || email == null) {
alert("이메일은 필수정보입니다. 정보제공을 동의해주세요.");
naverLogin.reprompt();
return;
}
if (name == undefined || name == null) {
alert("이름은 필수정보입니다. 정보제공을 동의해주세요.");
naverLogin.reprompt();
return;
}
snsid = uniqId;
//0:일반회원가입,1:google,2:naver,3:kakao
capp("/focommon/SnsLink", { snsid: uniqId, jointype: 2 }, "snslink");
} else {
alert("네이버 AccessToken이 올바르지 않습니다. 관리자에게 문의하세요. error status[" + status + "]");
}
});
}
//카카오
else if (@jointype == 3) {
$.when(
Kakao.init("@kakaoClientId")
).done(function () {
Kakao.API.request({
url: '/v2/user/me',
success: function (res) {
snsid = res.id;
//0:일반회원가입,1:google,2:naver,3:kakao
capp("/focommon/SnsLink", { snsid: snsid, jointype: 3 }, "snslink");
},
fail: function (error) {
console.log(error);
}
});
});
}
});
var snsid;
//구글
function onGoogleLogIn(googleUser) {
var profile = googleUser.getBasicProfile();
snsid = profile.getId();
if (@jointype == 1) {
capp("/focommon/SnsLink", { snsid: snsid, jointype: 1 }, "snslink");
}
}
//공통
function snslink() {
if (capResult.code > 0) {
alert("연동하였습니다.");
goRefresh();
}
else {
alert("SNS 연동에 실패하였습니다. \r\n관리자에게 문의하세요.");
return;
}
}
function goRefresh() {
if (@jointype == 2) {
opener.location.href = "/My/MyinfoCheck";
self.close();
}
else {
location.href = "/My/MyinfoCheck";
}
}
</script>