์ค๋์ ํธ๋ฌ๋ธ ์ํ
์ด์ ๋ถํฐ ํ๋ก ํธ ๊ตฌํ๊ณผ ํจ๊ป ํ ์ค ๊ฒฐ์ API ์ฐ๋ ๊ฐ๋ฐ์ ๋ค์ด๊ฐ๋ค.
๊ทผ๋ฐ ๋ฌธ์ ์
1. 401 Unauthorized
tossPayments = TossPayments(key);
ํด์ฃผ๋ ๊ณผ์ ์์, ํค ๊ฐ์ด ๊ถํ์ด ์๋ ๊ฑฐ๋ค๋ผ๋ ์ค๋ฅ๊ฐ ์ฃผ๊ตฌ์ฅ์ฐฝ
..........
๋ถ๋ช
๊ณต์ ์ฌ์ดํธ์์ ๋ฐ์ ๊ฐ์ ์๋ฃ์ด์คฌ๋๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์
๊ณ์ํด์ ๋ค๋ฅธ ๊ฐ๋ ๋ฃ์ด์ฃผ๊ณ ๋ค์ ๋ฃ์ด์ฃผ๊ณ ๋ฅผ ๋ฐ๋ณตํ๋ ๋๋ค....
์ ๋์ง????
๋ญ๊ฐ ๋ค์ ๊ณต๋ฐฑ์ด๋ผ๋๊ฐ .... ์ด๋ฐ๊ฒ ๋ค์ด๊ฐ๊ฑฐ ๊ฐ๋ค....
๋์ผ๋๋ญ
2. ๋ก๊ทธ์ธ ์ฌ๋ถ ํ์ธ ํ, ํค๋์ ํ์๋๋ ๋ฉ๋ด๊ฐ ๋ฌ๋ผ์ ธ์ผํ๋๋ฐ
function checkLoginStatus() {
var token = Cookies.get('Authorization');
// ๋ก๊ทธ์ธ ์ํ ํ์ธ API ํธ์ถ
$.ajax({
url: "/api/v1/auth/status",
type: "GET",
headers: {
"Authorization": token
},
success: function (data) {
if (data.isLoggedIn === true) {
// ๋ก๊ทธ์ธ ์ํ์ผ ๊ฒฝ์ฐ ์ฒ๋ฆฌ
$("#logout, #mypage, #name, #charge").css("display", "block");
$("#name_a").text(data.user.nickname);
$("#login, #signup").css("display", "none");
} else {
// ๋น๋ก๊ทธ์ธ ์ํ์ผ ๊ฒฝ์ฐ ์ฒ๋ฆฌ
$("#login, #signup").css("display", "block");
$("#logout, #mypage, #name, #charge").css("display", "none");
}
},
error: function (jqXHR, textStatus) {
console.error("Error checking login status:", textStatus);
}
});
}
์ด ํจ์๋ก ๋ก๊ทธ์ธ ์ฌ๋ถ๋ฅผ ์ฒดํฌํ๊ณ ๊ทธ์ ๋ง๊ฒ ๋ฉ๋ด๋ค์ hidden or show ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋๋ฐ,
์ด๋จ ๋๋ ๋์ค๊ณ , ์ด๋จ ๋๋ ์ ๋ถ๋ค ํ๋ ์ด๊ณ ์ด๋ฐ์์ผ๋ก ํ์ด์ง๊ฐ ๋ ๋๋ง๋๋ค.....
๊ทธ๋์ GPT์๊ฒ ์๋ด์ ํ๋๋,
๋น๋๊ธฐ ๋ฌธ์ : checkLoginStatus ํจ์๊ฐ ๋น๋๊ธฐ์ ์ผ๋ก ์คํ๋ ์ ์๊ธฐ ๋๋ฌธ์, ๋ค๋ฅธ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋๋ ๋์ ๋ก๊ทธ์ธ ์ํ๊ฐ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. checkLoginStatus ํจ์๊ฐ ์๋ฃ๋ ํ์ UI๋ฅผ ์กฐ์ํ๋๋ก ํ์ธํ์ญ์์ค.
๋ผ๋ ๋ต๋ณ๊ณผ ์ด๋ฌํ ์ฝ๋๋ฅผ ์๋ ค์คซ๋ค.
function checkLoginStatus() {
var token = Cookies.get('Authorization');
var deferred = $.Deferred();
// ๋ก๊ทธ์ธ ์ํ ํ์ธ API ํธ์ถ
$.ajax({
url: "/api/v1/auth/status",
type: "GET",
headers: {
"Authorization": token
},
success: function (data) {
if (data.isLoggedIn === true) {
// ๋ก๊ทธ์ธ ์ํ์ผ ๊ฒฝ์ฐ ์ฒ๋ฆฌ
$("#logout, #mypage, #name, #charge").css("display", "block");
$("#name_a").text(data.user.nickname);
$("#login, #signup").css("display", "none");
} else {
// ๋น๋ก๊ทธ์ธ ์ํ์ผ ๊ฒฝ์ฐ ์ฒ๋ฆฌ
$("#login, #signup").css("display", "block");
$("#logout, #mypage, #name, #charge").css("display", "none");
}
deferred.resolve(); // ์์
์ด ๋๋ฌ์์ ์๋ฆผ
},
error: function (jqXHR, textStatus) {
console.error("Error checking login status:", textStatus);
deferred.reject(); // ์๋ฌ ๋ฐ์์ ์๋ฆผ
}
});
return deferred.promise();
}
์ค~ ์๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ฌธ์ ๋
๊ณตํต์ผ๋ก ์ฌ์ฉํ๋ ํค๋๋ฅผ JQuery๋ฅผ ๊ฐ์ง๊ณ load ์์ผ์ฃผ๋๋ก ์ฝ๋๋ฅผ ์์ ํ๋๋ฐ,
$(document).ready(function () {
$("#headers").load()
checkLoginStatus();
});
๋ค์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค....
ํ์์ ๋์์ ๋ฐ์ ํด๊ฒฐํ๋๋ฐ, ์์ธ์ด load๋ ๋น๋๊ธฐ ํจ์๋ผ, load ๊ฐ ๋๋๋ ๋ง๋ ๊ฐ์ checkStatus๊ฐ ํธ์ถ๋๊ธฐ ๋๋ฌธ์ ์ด๋จ ๋๋ ์ ์ ์ฉ๋๊ณ , ์ด๋จ ๋๋ ์๋๋ ๊ฒ์ด์๋ค.
$(document).ready(function () {
// ํ์ด์ง ๋ก๋ ์ ๋ก๊ทธ์ธ ์ํ ํ์ธ ํ UI ์
๋ฐ์ดํธ
$("#headers").load("/header.html", function (response, status, xhr) {
checkLoginStatus();
});
});
์ด๋ ๊ฒ ์์ ํด์ค์ผ๋ก์จ load ํจ์ ์ฆ, "header.html"์ ์์ ํ ๋ก๋ฉํด์ค ํ์ checkLoginStatus๋ฅผ ํธ์ถํจ์ผ๋ก์จ, ์ ์๋ํ๋ ๊ฒ!!
๋ง์ ๊ฒ์ ๊นจ๋ซ๊ฒ๋์๋ค..ใ
'TIL๐ฅ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
24.01.11 TIL (1) | 2024.01.12 |
---|---|
24.01.10 TIL (0) | 2024.01.10 |
24.01.09 TIL (0) | 2024.01.10 |
24.01.08 TIL (1) | 2024.01.09 |
24.01.04 TIL (1) | 2024.01.05 |