TIL๐Ÿ”ฅ

24.01.15 TIL

KIMHYEYUN 2024. 1. 16. 01:53
๋ฐ˜์‘ํ˜•

์˜ค๋Š˜์˜ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

์–ด์ œ๋ถ€ํ„ฐ ํ”„๋ก ํŠธ ๊ตฌํ˜„๊ณผ ํ•จ๊ป˜ ํ† ์Šค ๊ฒฐ์ œ 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๋ฅผ ํ˜ธ์ถœํ•จ์œผ๋กœ์จ, ์ž˜ ์ž‘๋™ํ–ˆ๋˜ ๊ฒƒ!!
๋งŽ์€ ๊ฒƒ์„ ๊นจ๋‹ซ๊ฒŒ๋˜์—ˆ๋‹ค..ใ…Ž

728x90
๋ฐ˜์‘ํ˜•