SPRING
2022.05.02 / 16:13

Ä«Ä«¿À ·Î±×ÀÎ(Kakao Login) ÀÎÁõ APIÀ» È°¿ëÇؼ­ °£´ÜÇÏ°Ô »ç¿ëÀÚ ·Î±×ÀΠó¸®ÇÏ´Â ¹æ¹ý

ÄÚÄÚ·Î
Ãßõ ¼ö 137

Ä«Ä«¿À ·Î±×ÀÎ(Kakao Login) ÀÎÁõ APIÀ» È°¿ëÇؼ­ °£´ÜÇÏ°Ô »ç¿ëÀÚ ·Î±×ÀΠó¸®ÇÏ´Â ¹æ¹ý

³²¾çÁÖ°³¹ßÀÚ

¡¤

2020. 7. 23. 07:15

728x90
¹ÝÀÀÇü

Ä«Ä«¿À °³¹ßÀÚ Áö¿ø »çÀÌÆ®°¡ ±²ÀåÈ÷ ±ò²ûÇÏ°Ô º¯°æµÇ¾ú½À´Ï´Ù! °³ÀÎÀûÀ¸·Î ÀÌÀü »çÀÌÆ®º¸´Ù ±ò²ûÇÏ°í »ç¿ëÇϱâ Æí¸®ÇÏ°Ô ±¸Á¶°¡ ÀâÈù ´À³¦À̳׿ä. ÀÌÀü¿¡ À¥(Web) ¼­ºñ½º¿¡¼­ Ä«Ä«¿À¸Ê API¸¦ È°¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ­ ¼Ò°³Çߴµ¥, À̹ø¿¡´Â À¥ ¼­ºñ½ºÀÇ ÇÙ½ÉÀÎ ·Î±×ÀÎ ÇÁ·Î¼¼½º¸¦ Ä«Ä«¿À ·Î±×ÀÎ ÀÎÁõ API(Kakao Login API)¸¦ È°¿ëÇؼ­ ±¸ÇöÇغ¸·Á°í ÇÕ´Ï´Ù.

»çÀü ¼³Á¤

¸®´º¾óµÈ Ä«Ä«¿À °³¹ßÀÚ Áö¿ø »çÀÌÆ®

Ä«Ä«¿À ·Î±×ÀÎ ±â´ÉÀ» ±¸ÇöÇϱâ À§Çؼ­´Â Ä«Ä«¿À °³¹ßÀÚ Áö¿ø »çÀÌÆ®¿¡ ·Î±×ÀÎÀ» ÇÏ¼Å¾ß ÇÕ´Ï´Ù. »ó´Ü¿¡ ¹èÄ¡µÈ ¸Þ´º¿¡¼­ ³» ¾ÖÇø®ÄÉÀ̼ÇÀ̳ª ·Î±×ÀÎÀ» ´©¸£½Ã¸é ·Î±×ÀÎÀ» ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.

Ä«Ä«¿À °³¹ßÀÚ Áö¿ø »çÀÌÆ® ·Î±×ÀÎ È­¸é

Àú´Â ³» ¾ÖÇø®ÄÉÀ̼ÇÀ» ÅëÇؼ­ ·Î±×ÀÎÀ» Ç߱⠶§¹®¿¡ ¹Ù·Î ³» ¾ÖÇø®ÄÉÀÌ¼Ç ÆäÀÌÁö·Î À̵¿ÇÑ ¸ð½ÀÀÔ´Ï´Ù.

¾ÖÇø®ÄÉÀÌ¼Ç Ãß°¡

Ä«Ä«¿À ³» ¾ÖÇø®ÄÉÀÌ¼Ç Áö¿ø ÆäÀÌÁö

Å×½ºÆ®¸¦ À§Çؼ­ ¾ÖÇø®ÄÉÀ̼ÇÀ» Ãß°¡ÇÏ°Ú½À´Ï´Ù. ¾ÖÇø®ÄÉÀÌ¼Ç Ãß°¡Çϱ⠹öÆ°À» ´©¸£½Ã¸é ¾Æ·¡ ¾ÖÇø®ÄÉÀÌ¼Ç Ãß°¡¸¦ À§ÇØ ¾ÖÇø®ÄÉÀÌ¼Ç Á¤º¸¸¦ ±âÀÔÇϴ âÀÌ ¶å´Ï´Ù. Å×½ºÆ® ¿ëµµ·Î »ç¿ëÇÏ´Ï±î ´ëÃæ ÀÔ·ÂÇÏ°í ³Ñ¾î°¡°Ú½À´Ï´Ù.

Ä«Ä«¿À ÀÎÁõ Å×½ºÆ®¸¦ À§Çؼ­ Å×½ºÆ® ¾ÖÇø®ÄÉÀ̼ÇÀ» Ãß°¡ÇÏ´Â ¸ð½À

¾ÖÇø®ÄÉÀÌ¼Ç Ãß°¡°¡ ¿Ï·áµÇ¾ú´Ù¸é, ÀÌÀü¿¡ ´­·¶´ø ¾ÖÇø®ÄÉÀÌ¼Ç Ãß°¡Çϱ⠹öÆ° ¾Æ·¡¿¡ ÀúÈñ°¡ »ý¼ºÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¹Ù·Î ¾Æ·¡ À§Ä¡ÇÏ°í ÀÖ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. Çѹø ÀúÈñ°¡ »ý¼ºÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀ» »ìÆ캼±î¿ä?

¾ÖÇø®ÄÉÀ̼ÇÀÌ »ý¼ºµÈ ¸ð½À

»ý¼ºÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀ» ´©¸£½Ã¸é ¾Æ·¡¿Í °°ÀÌ °¢Á¾ Á¤º¸µéÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿ä¾à Á¤º¸ºÎÅÍ ½ÃÀÛÇؼ­ ÀϹÝ, ºñÁî´Ï½º, ¾Û Å°, Ç÷§Æû, ÆÀ °ü¸® µî ±²ÀåÈ÷ ´Ù¾çÇÑ ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ±×¸®°í ¿ä¾à Á¤º¸¿¡´Â ÀúÈñ°¡ »ý¼ºÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â ¾Û Å°°¡ Á¸ÀçÇÕ´Ï´Ù. ÇØ´ç Å°´Â ¿ÜºÎ¿¡ ³ëÃâµÇÁö ¾Êµµ·Ï Àß °ü¸®ÇØÁÖ¼¼¿ä.

³» ¾ÖÇø®ÄÉÀÌ¼Ç Á¤º¸ »ìÆ캸±â

ÀúÈñ´Â À¥ Ç÷§Æû¿¡¼­ Ä«Ä«¿À ·Î±×ÀÎ ÀÎÁõÀ» ±¸ÇöÇϱ⠶§¹®¿¡ Ç÷§Æû ¼³Á¤Çϱâ·Î µé¾î°¡¼­ À¥ Ç÷§Æû ºÎºÐÀÇ ¼³Á¤À» ¼öÁ¤Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù.

À¥ Ç÷§Æû Ãß°¡

Ç÷§Æû ¼³Á¤

Ç÷§Æû ¼³Á¤Çϱ⸦ µé¾î°¡¸é ¾Èµå·ÎÀ̵å(Android), iOS ±×¸®°í À¥(Web)À» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀúÈñ´Â À¥ Ç÷§ÆûÀ» ¼öÁ¤Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù. À¥ Ç÷§Æû µî·ÏÀ» ´­·¯ÁÖ¼¼¿ä.

¾Èµå·ÎÀ̵å, iOS, Web Ç÷§ÆûÀ» µî·ÏÇϱâ À§ÇÑ ÆäÀÌÁö

À¥ Ç÷§Æû µî·Ï ¹öÆ°À» ´©¸£¸é À¥ Ç÷§Æû µî·ÏÀ» À§ÇÑ Ã¢ÀÌ ¶å´Ï´Ù. ÀúÈñ´Â Çã¿ëÇϱâ À§ÇÑ »çÀÌÆ® µµ¸ÞÀÎÀ» Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù. ÀúÀÇ Å×½ºÆ® ȯ°æÀÇ ·ÎÄà Æ÷Æ®´Â 3000À̹ǷΠhttp://localhost:3000À» Ãß°¡ÇÕ´Ï´Ù. ¸¸¾à °³¹ßÇϴ ȯ°æÀÌ ´Ù¸¥ Æ÷Æ®¸é ÇØ´çÇÏ´Â Æ÷Æ®¹øÈ£ÀÇ ·ÎÄà ȣ½ºÆ®¸¦ µî·ÏÇÏ¸é µË´Ï´Ù. ±×¸®°í ½ÇÁ¦ »ó¿ëÈ­ µµ¸ÞÀεµ ¿©±â¿¡ Ãß°¡ÇϼžßÁö Á¤»óÀûÀ¸·Î ¼­ºñ½º¿¡ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÃÖ´ë 10°³±îÁö µî·ÏÀÌ °¡´ÉÇÏ´Ù°í ÇÏ´Ï ÀÌÁ¡ À¯³äÇؼ­ »çÀÌÆ® µµ¸ÞÀÎÀ» ±¸¼ºÇØÁÖ½Ã¸é µÉ °Í °°½À´Ï´Ù. ±×¸®°í ¿©·¯ °³¸¦ µî·ÏÇÏ°í ½ÍÀ» ¶§´Â ÁÙ ¹Ù²ÞÀ¸·Î Ãß°¡ÇÏ½Ã¸é µË´Ï´Ù.

À¥ Ç÷§Æû µî·Ï¿¡¼­ »çÀÌÆ® µµ¸ÞÀÎÀ» Ãß°¡

 

Á¤»óÀûÀ¸·Î »çÀÌÆ® µµ¸ÞÀÎÀ» Ãß°¡ÇÑ ¿¹½Ã

»çÀÌÆ® µµ¸ÞÀÎ µî·ÏÀ» ¾ÈÇÏ½Ã¸é ¾Æ·¡¿Í °°Àº ¿¡·¯°¡ ¹ß»ýÇÏ°Ô µË´Ï´Ù.

»çÀÌÆ® µµ¸ÞÀÎÀ» µî·ÏÇÏÁö ¾ÊÀ» ½Ã ³ªÅ¸³ª´Â ¿¡·¯

Ä«Ä«¿À ·Î±×ÀÎ È°¼ºÈ­

±×·¯¸é ÀÌÁ¦ Ä«Ä«¿À ·Î±×ÀÎÀ» ±¸ÇöÇϱâ À§ÇØ Á¦Ç° ¼³Á¤¿¡ µé¾î°¡¼­ Ä«Ä«¿À ·Î±×ÀÎ È°¼ºÈ­ ¼³Á¤À» ÇÏ°Ú½À´Ï´Ù. ÁÂÃø ÅǸ޴º¿¡¼­ Á¦Ç°¼³Á¤ > Ä«Ä«¿À ·Î±×ÀÎÀ» ´©¸£¸é ¾Æ·¡¿Í °°Àº ÆäÀÌÁö¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.

Ä«Ä«¿À ·Î±×ÀÎ È°¼ºÈ­ Çϱâ À§ÇØ Ä«Ä«¿À ·Î±×ÀÎ Á¦Ç° ÆäÀÌÁö·Î À̵¿
Ä«Ä«¿À ·Î±×ÀÎ È°¼ºÈ­
µ¿ÀÇ⠹̸®º¸±â¸¦ ÅëÇØ ¾î¶² È­¸éÀ¸·Î ¼ö½Åµ¿ÀÇ°¡ ³ëÃâµÇ´ÂÁö È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù

JavaScript SDK Ãß°¡

±×·³ ÀÌÁ¦ ÄÚµå ÂÊÀ» »ìÆ캸°Ú½À´Ï´Ù. Ä«Ä«¿À ·Î±×ÀÎÀ» »ç¿ëÇϱâ À§Çؼ­´Â Ä«Ä«¿À JavaScript SDK¸¦ »ó¿ëÇØ¾ß ÇÕ´Ï´Ù.

<script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>

Àú´Â Å×½ºÆ®·Î create-react-appÀ¸·Î ¸®¾×Æ® ȯ°æÀ» ±¸¼ºÇؼ­ ÁøÇàÇϱ⠶§¹®¿¡ public/index.html ÆÄÀÏ¿¡ ½ºÅ©¸³Æ®¸¦ ³Ö°Ú½À´Ï´Ù.

kakao javascript sdk¸¦ Ãß°¡ÇÏ´Â ¿¹½Ã
javascript sdk°¡ Á¤»óÀûÀ¸·Î Ãß°¡µÇ¾ú°í, ½ºÅ©¸³Æ®°¡ Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏ´Â ¿¹½Ã

Kakao Javascript SDK¸¦ Ãß°¡ÇÏ°í, Kakao ÀνºÅϽº°¡ Á¤»óÀûÀ¸·Î È£ÃâµÇ´Â °ÍÀÌ È®ÀεǾúÀ¸¸é ÀÌÁ¦ initÀ» ÇØÁÙ Â÷·ÊÀÔ´Ï´Ù. ÀÌÀü¿¡ ³» ¾ÖÇø®ÄÉÀÌ¼Ç ÆäÀÌÁö¿¡¼­ ¿ä¾à Á¤º¸³ª ¾Û Å° ÂÊ¿¡ ¾ÖÇø®ÄÉÀÌ¼Ç Javascript Å°°¡ ÀÖ´Â °ÍÀ» È®ÀÎÇß½À´Ï´Ù. Javascript Å°¸¦ È°¿ëÇؼ­ initÀ» ÇÏ°Ú½À´Ï´Ù.

Javascript Å°

Àú´Â componentDidMount ¶óÀÌÇÁ»çÀÌŬ¿¡¼­ Kakao.initÀ» ÇØÁÖ°Ú½À´Ï´Ù. Kakao.init ÆĶó¹ÌÅÍ·Î ÀÚ¹Ù½ºÅ©¸³Æ® Å°¸¦ ³Ö¾îÁÝ´Ï´Ù.

  componentDidMount() {
    Kakao.init('¿©±â¿¡ ÀÚ¹Ù½ºÅ©¸³Æ® Å°¸¦ ÀÔ·ÂÇϼ¼¿ä.');
  }

Kakao.initÀ» ¿¡·¯ ¾øÀÌ Àß ÀÛµ¿½ÃÄ×´Ù¸é ¾Æ·¡¿Í °°ÀÌ °ü·Ã APIµéÀ» »ç¿ëÇÒ ¼ö Àִ ȯ°æÀÌ ±¸¼ºµÇ¾úÀ½À» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.

Kakao.initÀÌ Á¤»óÀûÀ¸·Î È£ÃâµÈ ¿¹½Ã

Ä«Ä«¿À ÀÎÁõ ±¸Çö

·Î±×ÀÎ

Ä«Ä«¿À ·Î±×ÀÎÀº ±âº»ÀûÀ¸·Î Kakao.Auth.login ÇÔ¼ö¸¦ »ç¿ëÇؼ­ ±¸ÇöÇÕ´Ï´Ù.

Ä«Ä«¿À ·Î±×ÀΠµ¿ÀÇ È­¸éÀ» Æ˾÷À¸·Î ¶ç¿ì°Å³ª Å¬¶óÀ̾ðÆ®¿¡¼­ ¸ðµç ÀÎÁõ󸮸¦ ÇÏ°í ½ÍÀº °æ¿ì Kakao.Auth.login ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

Ŭ¸¯ À̺¥Æ® Çڵ鷯¿¡¼­ ÇÔ¼ö¸¦ È£ÃâÇϸé Ä«Ä«¿À ·Î±×ÀΠµ¿ÀÇÈ­¸é ¶ç¿ï ¼ö ÀÖÀ¸¸ç, µ¿ÀÇÈ­¸éÀ» ÅëÇØ »ç¿ëÀڷκÎÅÍ »ç¿ëÀÚ Á¤º¸ ¹× ±â´É È°¿ë µ¿ÀǸ¦ ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù. ÇÔ¼ö È£Ã⠽àÆ˾÷À¸·Î Ä«Ä«¿À ·Î±×ÀΠµ¿ÀÇ È­¸éÀ̠ǥ½ÃµË´Ï´Ù. ·Î±×ÀΠ¿äû °á°ú »ç¿ëÀÚ ÅäÅ«ÀÌ ¹ß±ÞµÇ¸ç, ÀÌ ÅäÅ«Àº SDK ³»ºÎÀûÀ¸·Î »ç¿ëµÇ°í Àֱ⠶§¹®¿¡ º°µµÀǠ󸮰¡ ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. ·Î±×ÀΠ¼º°ø ½Ã ¼­ºñ½ºÀÇ ·Î±×ÀΠ¹× È¸¿ø °¡ÀԠ󸮰¡ ÇÊ¿äÇÕ´Ï´Ù. ÀÎÁõ ¼º°ø ½Ã ¼­ºñ½ºÀÇ ·Î±×ÀΠ󸮴 success Äݹé ÇÔ¼ö¸¦ »ç¿ëÇؾߠÇÕ´Ï´Ù.

Key Type Description Required
success Function(Object) ·Î±×ÀÎÀÌ ¼º°øÇÒ °æ¿ì »ç¿ëÀÚ ÅäÅ«À» ¹ÞÀ» Äݹé ÇÔ¼ö X
fail Function(Object) ·Î±×ÀÎÀÌ ½ÇÆÐÇÒ °æ¿ì ¿¡·¯¸¦ ¹ÞÀ» Äݹé ÇÔ¼ö X
always Function(Object) ·Î±×ÀÎ ¼º°ø ¿©ºÎ¿¡ °ü°è ¾øÀÌ Ç×»ó È£ÃâµÇ´Â ÇÔ¼ö X
scope String Ãß°¡ µ¿ÀÇ ¹ÞÀ» Ç׸ñÀÇ Å° X
persistAccessToken Boolean ¼¼¼ÇÀÌ Á¾·áµÈ µÚ¿¡µµ Access TokenÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ·ÎÄà ½ºÅ丮Áö¿¡ ÀúÀåÇÕ´Ï´Ù. (default: true) X
throughTalk Boolean °£Æí ·Î±×ÀÎ »ç¿ë ¿©ºÎ (default: true) X

¾Æ·¡´Â Kakao.Auth.loginÀÇ ±âº» ±¸Á¶ÀÔ´Ï´Ù.

Kakao.Auth.login({
  // persistAccessToken: true,
  success: (auth) => {
  },
  fail: (err) => {
    console.error(err)
  }
})

Ä«Ä«¿À ·Î±×ÀÎ ¹öÆ°¿¡ Ŭ¸¯ À̺¥Æ® Çڵ鷯¸¦ Ãß°¡ÇÕ´Ï´Ù.

  loginWithKakao = () => {
    try {
      return new Promise((resolve, reject) => {
        if (!Kakao) {
          reject('Kakao ÀνºÅϽº°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù.')
        }
        Kakao.Auth.login({
          success: (auth) => {
            console.log('Á¤»óÀûÀ¸·Î ·Î±×ÀÎ µÇ¾ú½À´Ï´Ù.', auth)
            this.setState({
              isLogin: true
            })
          },
          fail: (err) => {
            console.error(err)
          }
        })
      })
    } catch (err) {
      console.error(err)
    }
  }

Ŭ¸¯Çϸé Á¤»óÀûÀ¸·Î Ä«Ä«¿À ·Î±×ÀÎ µ¿ÀÇÈ­¸éÀÌ ³ëÃâµÇ´Â ¸ð½À

µ¿ÀÇÇ׸ñ º¯°æ

¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ¹Þ°í ½ÍÀº °³ÀÎÁ¤º¸ º¸È£Ç׸ñÀ» Ãß°¡ÇÕ´Ï´Ù. ´Ù¾çÇÑ °ªµéÀÌ ÀÖÀ¸´Ï(ÇÁ·ÎÇÊ Á¤º¸(´Ð³×ÀÓ/ÇÁ·ÎÇÊ »çÁø), Ä«Ä«¿À°èÁ¤(À̸ÞÀÏ), ¼ºº°, ¿¬·É´ë, Ä«Ä«¿À ¼­ºñ½º ³» Ä£±¸¸ñ·Ï, »ýÀÏ) ¼­ºñ½ºÀÇ ¿ëµµ¿¡ ¸Â°Ô °³ÀÎÁ¤º¸¸¦ ¹ÞÀ¸¸é µË´Ï´Ù.

°³ÀÎÁ¤º¸ µ¿ÀÇÇ׸ñÀ» ¼öÁ¤ÇÏ´Â ¿¹½Ã

Àú´Â ÇÁ·ÎÇÊ Á¤º¸(´Ð³×ÀÓ/ÇÁ·ÎÇÊ »çÁø)¸¸ ¹Þ°Ô²û µ¿ÀÇÇ׸ñÀ» ¼³Á¤ÇÏ°Ú½À´Ï´Ù. µ¿ÀÇÇ׸ñ ¼³Á¤À» ÇÏ½Ç ¶§ µ¿ÀÇ ´Ü°è(Çʼö µ¿ÀÇ, ¼±Åà µ¿ÀÇ, ÀÌ¿ë Áß µ¿ÀÇ)¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ°í ÇØ´ç °ªÀÌ ¾øÀ» °æ¿ì Ä«Ä«¿À °èÁ¤ Á¤º¸ ÀÔ·ÂÀ» ¿äûÇÒ ¼öµµ ÀÖ½À´Ï´Ù. µ¿ÀÇ ¸ñÀûÀº ÇʼöÀûÀ¸·Î ÀÔ·ÂÇÏ¼Å¾ß µË´Ï´Ù.

µ¿ÀÇÇ׸ñ ¼³Á¤

µ¿ÀÇ Ç׸ñÀ» ¼öÁ¤ÇÏ°í ´Ù½Ã Ä«Ä«¿À ·Î±×ÀÎÀ» ´­·¯º¸¸é Çʼö Á¦°ø Ç׸ñ¶õÀÌ Ãß°¡µÇ¾úÀ½À» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.

Çʼö Á¦°ø Ç׸ñÀÌ Ãß°¡µÈ ¸ð½À

±×·³ ÀÌÁ¦ Àüü µ¿ÀǸ¦ ÇÏ°í ·Î±×ÀÎÀ» ÇÏ°Ú½À´Ï´Ù. ·Î±×ÀÎÀ» ¿Ï·áÇÏ¸é ·Î±×Àο¡ ÇÊ¿äÇÑ ¾×¼¼½º ÅäÅ«À̳ª ¸¸·á±â°£ µî Ä«Ä«¿À ÀÎÁõ API¿¡¼­ Á¦°øÇÏ´Â °ªÀ» ¿äû ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.

¼º°øÀûÀ¸·Î ·Î±×ÀÎÇÑ ¿¹½Ã

·Î±×¾Æ¿ô

·Î±×ÀÎÀ» ½ÃÄѺÃÀ¸´Ï±î ÀÌÁ¦ ·Î±×¾Æ¿ô ·ÎÁ÷µµ Ãß°¡ÇÏ°Ú½À´Ï´Ù. ±âº»ÀûÀ¸·Î Ä«Ä«¿À ÀÎÁõ API´Â persistAccessToken °ªÀ» true·Î ÁöÁ¤ÇÒ ½Ã ÅäÅ«ÀÌ ¸¸·áµÉ ¶§ ±îÁö ¼¼¼ÇÀ» À¯ÁöÇÏ°í ÀÖ½À´Ï´Ù.

Kakao.Auth.getAccessToken()¸¦ È°¿ëÇؼ­ ¾×¼¼½º ÅäÅ«ÀÌ Á¸ÀçÇÏ´ÂÁö¸¦ üũÇÒ ¼ö ÀÖ°í ¾×¼¼½º ÅäÅ«ÀÌ Á¸ÀçÇÑ´Ù¸é, ·Î±×¾Æ¿ôÀ» ½ÃÅ°¸é µË´Ï´Ù. ·Î±×¾Æ¿ôÀº Kakao.Auth.logout ÇÔ¼ö¸¦ È°¿ëÇؼ­ ±¸ÇöÇÕ´Ï´Ù. ¾Æ·¡´Â ·Î±×¾Æ¿ô ÄÚµå ¿¹½ÃÀÔ´Ï´Ù.

  logoutWithKakao = () => {
    if (Kakao.Auth.getAccessToken()) {
      console.log('Ä«Ä«¿À ÀÎÁõ ¾×¼¼½º ÅäÅ«ÀÌ Á¸ÀçÇÕ´Ï´Ù.', Kakao.Auth.getAccessToken())
      Kakao.Auth.logout(() => {
        console.log('·Î±×¾Æ¿ô µÇ¾ú½À´Ï´Ù', Kakao.Auth.getAccessToken());
        this.setState({
          isLogin: false
        })        
      });
    }
  }

 

·Î±×ÀÎ, ·Î±×¾Æ¿ô, ·Î±×ÀÎ ¼¼¼Ç ¸ðµÎ Á¤»óÀûÀ¸·Î ÀÛµ¿ÇÏ´Â ¸ð½À

ÀÎÁõ ÇÁ·Î¼¼½º Àüü ¿¹Á¦ ÄÚµå

¾Æ·¡´Â Ä«Ä«¿À ÀÎÁõ ÇÁ·Î¼¼½º(·Î±×ÀÎ/·Î±×¾Æ¿ô/¼¼¼Ç À¯Áö)¿¡ ´ëÇÑ ¿¹Á¦ ÄÚµåÀÔ´Ï´Ù. Âü°í¿ëÀ¸·Î¸¸ È®ÀÎÇÏ½Ã¸é µÉ °Í °°½À´Ï´Ù.

/* eslint-disable no-undef */
import React, { Component } from 'react';

class App extends Component {
  state = {
    isLogin: false,
  }
  loginWithKakao = () => {
    try {
      return new Promise((resolve, reject) => {
        if (!Kakao) {
          reject('Kakao ÀνºÅϽº°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù.')
        }
        Kakao.Auth.login({
          success: (auth) => {
            console.log('Á¤»óÀûÀ¸·Î ·Î±×ÀÎ µÇ¾ú½À´Ï´Ù.', auth)
            this.setState({
              isLogin: true
            })
          },
          fail: (err) => {
            console.error(err)
          }
        })
      })
    } catch (err) {
      console.error(err)
    }
  }
  logoutWithKakao = () => {
    if (Kakao.Auth.getAccessToken()) {
      console.log('Ä«Ä«¿À ÀÎÁõ ¾×¼¼½º ÅäÅ«ÀÌ Á¸ÀçÇÕ´Ï´Ù.', Kakao.Auth.getAccessToken())
      Kakao.Auth.logout(() => {
        console.log('·Î±×¾Æ¿ô µÇ¾ú½À´Ï´Ù', Kakao.Auth.getAccessToken());
        this.setState({
          isLogin: false
        })        
      });
    }
  }
  componentDidMount() {
    Kakao.init('6905840ea6abb16362e7bf0ba2cf16f5');
    if (Kakao.Auth.getAccessToken()) {
      console.log('¾×¼¼½º ÅäÅ«ÀÌ Á¸ÀçÇÕ´Ï´Ù. ¼¼¼ÇÀ» À¯ÁöÇÕ´Ï´Ù.')
      this.setState({
        isLogin: true
      })
    }
  }
  render() {
    const { isLogin } = this.state;

    const loginView = (<div>
      <p>·Î±×ÀÎÈ­¸é</p>
      <button onClick={this.loginWithKakao}>Ä«Ä«¿À ·Î±×ÀÎ</button>
    </div>)

    const mainView = (<div>
      <p>¸ÞÀÎ È­¸é</p>
      <button onClick={this.logoutWithKakao}>Ä«Ä«¿À ·Î±×¾Æ¿ô</button>
    </div>)
    return (
      <div className="App">
        {isLogin ? mainView : loginView}     
    </div>
    )
  }
}

export default App;
728x90
¹ÝÀÀÇü
±×¸®µåÇü

💖 ÀúÀÚ¿¡°Ô ¾ÏȣȭÆó·Î ÈÄ¿øÇϱâ 💖

¾ÆÀÌÄÜÀ» Ŭ¸¯Çϸé Áö°© ÁÖ¼Ò°¡ÀÚµ¿À¸·Î º¹»çµË´Ï´Ù

20°³ÀÇ ´ñ±Û

  • Favicon of https://mkter.tistory.com @µô·¹ÅÁÆ®

    2020.07.23 17:23 ½Å°í

    ¿Í¿ì... ÀßÀº ¸ð¸£Áö¸¸, ¹«Ã´ ¿ä±äÇÏ°Ô ¾²ÀÏ ¼ö ÀÖ´Â Á¤º¸ÀÎ µíÇÕ´Ï´Ù.
    Àß º¸°í °©´Ï´Ù. ^^

  • samm

    2020.08.19 17:50

    Çѹø ·Î±×ÀÎ ÇÏ°í ³ª¼­ ´Ù½Ã È£Ãâ ÇßÀ» ¶§ ºó Æ˾÷ÀÌ ¶ß´Â ¹®Á¦´Â ¾ø¾ú³ª¿ä?
    unlink ³ª ·Î±×¾Æ¿ô ÇÏ´õ¶óµµ Àá½Ãµ¿¾ÈÀº ºóÆ˾÷¸¸ ¶ß´Â Çö»óÀÌ ÀÖ´øµ¥¿ä~

    • ¾Æ¸¶ Ä«Ä«¿ÀÅå ÀÎÁõ ·Î±×ÀÎÆ˾÷ÀÌ ¶ß´Â °æ¿ìÀÏÅÙµ¥ ½ÇÁ¦ ·Î±×ÀÎÇßÀ» °æ¿ì ÇØ´ç ·Î±×ÀÎ ¹öÆ°À» º¼ ÀÏÀÌ ¾ø±â ¶§¹®¿¡ ÇØ´ç À̽´´Â ¹®Á¦ ¾øÀ» °Í °°¾Æ¿ä :0

  • Favicon of https://rechardvirus.tistory.com Rechard Virus

    2020.08.22 21:23 ½Å°í

    ¹öÆ° »ý¼ºÀÌ ¾ÈµÇ¿ä

  • Favicon of https://rechardvirus.tistory.com Rechard Virus

    2020.08.22 21:42 ½Å°í

    ·Î±×Àΰú ·Î±×¾Æ¿ô ¹öÆ°ÀÔ´Ï´Ù

  • Favicon of https://rechardvirus.tistory.com Rechard Virus

    2020.08.22 21:50 ½Å°í

    Àú ¼Ò½º ¶È°°ÀÌ Çß¾î¿ä

  • À͸í

    2020.08.22 21:53

    ºñ¹Ð´ñ±ÛÀÔ´Ï´Ù

  • °¨ÇÁ

    2020.10.08 23:20

    ¸ð¹ÙÀÏ À¥¿¡¼­ »çÆĸ®, Å©·Òµî Á¤»óÀûÀε¥
    ³×À̹ö¾Û¿¡¼­´Â óÀ½¿¡´Â Á¤»óÀûÀÌÁö¸¸
    Ä«Ä«¿À ·Î±×ÀÎ ÇÏ´Â È­¸éÀ» ±×³É µÎ°í ÇÑÂü 3~4½Ã°£ ÀÖ´Ù°¡
    ´Ù½Ã ³×À̹ö ¾Û¿¡¼­ Ä«Ä«¿À ·Î±×ÀÎÀ» ÇÏ·Á¸é ¸ÔÅëÀ̳׿ä
    ÀÏÁ¤½Ã°£ÀÌ °æ°ú µÇ¸é => Kakao.init(¡°JavaScript Å°¡±); ºÎºÐÀÌ ÃʱâÈ­µÇ¾î ±×·±°ÇÁö µµÅë ¾Ë ¼ö°¡ ¾ø³×¿ä
    ´Ù¸¥ »çÆĸ®, Å©·Ò µîµî ¸ðµç PC¿¡¼­´Â Á¤»óÀε¥
    À¯µ¶ ¸ð¹ÙÀÏ ³×À̹ö¾Û¸¸ ÀÏÁ¤½Ã°£ÀÌ °æ°úÇÏ¸é ±×·´´Ï´ç

  • °¨ÇÁ

    2020.10.08 23:21

    ÀÌ ¹æ½ÄÀº redirect urlÀÌ ÇÊ¿ä°¡ ¾ø´Â ¹æ½ÄÀΰÅÁÒ?

    ¿äÁò ¹æ½ÄÀº redirect urlÀÌ ÇÊ¿äÇÏ´Ù°í ÇÏ´õ¶ó°í¿ä..

  • hyeon

    2020.12.05 22:17

    Àß ºÃ½À´Ï´Ù!
    Ȥ½Ã ¼¼¼Ç¿¡ °ªÀ» ³Ö´Â ºÎºÐÀÌ this.setState À̺κÐÀΰǰ¡¿ä?
    DB¿¡ insertÇÑ Ä÷³°ªÀ» session¿¡ ³Ö°í ½Í¾î¼­¿ä!

  • Á¦À̽º

    2021.02.08 11:39

    ¾È³çÇϼ¼¿ä? ÀÛ¼º±Û Àߺ¸¾Ò½À´Ï´Ù.
    Áú¹®ÀÌ Àִµ¥¿ä
    ¸®¾×Æ®·Î ¸¸µç À¥(¹ÝÀÀÇü)¿¡ Ä«Ä«¿À °£Æí·Î±×ÀÎ ±â´ÉÀ» ³Ö¾ú´Âµ¥¿ä À¥¿¡¼­´Â Àß ÀÛµ¿Çϴµ¥
    flutter·Î ¸¸µç ¸ð¹ÙÀϾۿ¡¼­´Â Ä«Ä«¿À °£Æí·Î±×ÀÎÀÌ ÀÛµ¿À» ¾ÈÇÕ´Ï´Ù.

    °³¹ß»ç¿¡¼­ ÇÏ´Â ¸»ÀÌ ¸ð¹ÙÀϾۿ¡¼­´Â Ä«Ä«¿À °£Æí·Î±×ÀÎÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù°í Çϴµ¥ »ó½ÄÀûÀ¸·Î ÀÌÇØ°¡ ¾ÈµÇ¼­¿ä
    Á¤¸» ¾ÈµÇ´Â °Ç°¡¿ä?

    ¾Ë°í°è½Ã¸é ´äº¯ ºÎŹµå¸³´Ï´Ù.

    • ¾ÖÇø®ÄÉÀ̼ÇÀÌ À¥ºä·Î ÀÛ¾÷µÇ¾ú´Ù¸é ÇØ´ç °£Æí·Î±×ÀÎÀ» »ç¿ëÇÒ ¼ö ÀÖ°ÚÁö¸¸, ³×ÀÌƼºê·Î ÀÛ¾÷µÇ¾ú´Ù¸é Á¤»óÀûÀ¸·Î ÀÛµ¿ÀÌ ¾ÈµÉ ¼ö ÀÖÀ» °Í °°¾Æ¿ä!

  • Favicon of https://steadily-worked.tistory.com steadily-worked

    2021.05.15 23:14 ½Å°í

    ¾È³çÇϼ¼¿ä. ÀÌ ¹æ½Ä´ë·Î ÇÏ¿© ·Î±×ÀÎÀº Àß ±¸ÇöÀ» Çߴµ¥, ÀÌ°Ô ÅäÅ«À» ÄíÅ°¿¡ ¼¼ÆÃÇÏ´Â ¹æ½ÄÀΰ¡¿ä? ¾Æ´Ï¸é localStorage¿¡ µé¾î°¡ ÀÖ´Â ¹æ½ÄÀΰǰ¡¿ä?