๐Ÿ“’TIL) ์ €์žฅ๋œ JWT Token์„ POST ํ•˜๊ธฐ

TaeYangยท2021๋…„ 10์›” 17์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
7/8
post-thumbnail

1์ฐจ ํ”„๋กœ์ ํŠธ์ธ H&M์„ ํด๋ก  ์ฝ”๋”ฉํ•˜๋ฉด์„œ ๋กœ๊ทธ์ธ๋•Œ ์ €์žฅํ•œ ํ† ํฐ์œผ๋กœ ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋‚˜ ์ฆ๊ฒจ์ฐพ๊ธฐ์— ์ ‘๊ทผ์„ ํ• ๋•Œ ํ† ํฐ์ด ํ•„์š”ํ•ด์„œ ๊ทธ๊ฑฐ์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋กœ๊ทธ์ธ ํŽ˜์ด์ง€

๋จผ์ € ๋กœ๊ทธ์ธ์„ ํ•˜๋ฉด์„œ ๋ฐ›์•„์˜จ setItem( ) ์œผ๋กœ ํ† ํฐ์„ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•œ๋‹ค.

 goToMain = () => {
    const { email, password } = this.state;
    fetch(API.signin, {
      method: 'POST',
      body: JSON.stringify({
        email: email,
        password: password,
      }),
    })
      .then(res => res.json())
      .then(res => {
        console.log(res);
        if (res.ACCESS_TOKEN) {
          localStorage.setItem('token', res.ACCESS_TOKEN);
          this.props.history.push('/');
        } else if (!res.ACCESS_TOKEN) {
          alert('์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ™•์ธํ•ด์ฃผ์„ธ์š”');
        }
      });
  };

์žฅ๋ฐ”๊ตฌ๋‹ˆ ํŽ˜์ด์ง€

์ฆ๊ฒจ์ฐพ๊ธฐ์— ๋‹ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ๋กœ๊ทธ์ธ์„ ํ•ด์•ผํ•œ๋‹ค. ์ฆ‰ ํ† ํฐ์ด ํ•„์š”ํ•˜๋‹ค.
๋กœ๊ทธ์ธ์„ ํ•˜๋ฉด์„œ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ๋œ token์„ ๋‹ค์‹œ getItem( ) headers์— ๋‹ด์•„ POSTํ•ด์•ผ ํ•œ๋‹ค.

componentDidMount() {
    fetch(`${API.like}`, {
      method: 'GET',
      headers: {
        Authorization: localStorage.getItem('token'),
      },
    })
      .then(res => res.json())
      .then(result => {
        this.setState({
          favoritesList: result,
        });
      });
  }

์งง์€ ํšŒ๊ณ 

์ฒ˜์Œ์— ํ† ํฐ์„ ์ €์žฅํ• ๋ ค๊ณ  ํ–ˆ์„๋•Œ ํ† ํฐ์ด ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ์ด ์•ˆ๋˜์–ด์„œ ์ž„์˜๋กœ ํ† ํฐ ํ•œ๊ฐœ ๊ฐ’์„ headers์— ์ ์–ด๋‘๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋กœ๊ทธ์ธ๊ณผ ํšŒ์›๊ฐ€์ž…์„ ํ•˜๋Š” ์˜๋ฏธ๊ฐ€ ์—†์–ด์ ธ์„œ ์™œ ์•ˆ๋ ๊นŒ ๊ณ ๋ฏผ์„ ํ•ด๋ณด๋‹ค ์ฝ˜์†ก์„ ์ฐ์–ด๋ณด๋‹ˆ ํ† ํฐ์ด ACCESS_TOKEN์œผ๋กœ ์ฐํžˆ๋Š”๊ฑธ ์•Œ๊ฒŒ๋˜๊ณ  ์ง€๊ธˆ๊นŒ์ง€ res.token์œผ๋กœ ํ•ด์„œ ์•ˆ๋ฌ๋˜๊ฑธ ํŒŒ์•…ํ•˜๊ฒŒ ๋˜์–ด ์‹œ๋„ํ•ด ๋ณด๋‹ˆ ๋ฐฑ์—๋“œ์™€ ์—ฐ๊ฒฐ์— ์„ฑ๊ณตํ•ด ์•„์ด๋””๋ณ„๋กœ ๋‹ค๋ฅธ ์ฆ‘์ฐพ๊ธฐ ํ’ˆ๋ชฉ์ด ๋‚˜์™€์„œ ๊ธฐ๋ปค์—ˆ๋‹ค. ํŒ€ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๋งŽ์€๊ฑธ ๋ฐฐ์šด๊ฑฐ ๊ฐ™์•„ ์ข‹์€ ์‹œ๊ฐ„์ด์˜€๋˜๊ฑฐ ๊ฐ™๋‹ค.

profile
์Œ์•… ์ „๊ณต ์ด์˜€๋˜ ์˜ˆ๋น„ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์žโ˜€๏ธ

0๊ฐœ์˜ ๋Œ“๊ธ€