Ä«Ä«¿À ·Î±×ÀÎ(Kakao Login) ÀÎÁõ APIÀ» È°¿ëÇؼ °£´ÜÇÏ°Ô »ç¿ëÀÚ ·Î±×ÀΠó¸®ÇÏ´Â ¹æ¹ý
Ä«Ä«¿À ·Î±×ÀÎ(Kakao Login) ÀÎÁõ APIÀ» È°¿ëÇؼ °£´ÜÇÏ°Ô »ç¿ëÀÚ ·Î±×ÀΠó¸®ÇÏ´Â ¹æ¹ý
³²¾çÁÖ°³¹ßÀÚ
¡¤2020. 7. 23. 07:15
Ä«Ä«¿À °³¹ßÀÚ Áö¿ø »çÀÌÆ®°¡ ±²ÀåÈ÷ ±ò²ûÇÏ°Ô º¯°æµÇ¾ú½À´Ï´Ù! °³ÀÎÀûÀ¸·Î ÀÌÀü »çÀÌÆ®º¸´Ù ±ò²ûÇÏ°í »ç¿ëÇϱâ Æí¸®ÇÏ°Ô ±¸Á¶°¡ ÀâÈù ´À³¦À̳׿ä. ÀÌÀü¿¡ À¥(Web) ¼ºñ½º¿¡¼ Ä«Ä«¿À¸Ê API¸¦ È°¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ ¼Ò°³Çߴµ¥, À̹ø¿¡´Â À¥ ¼ºñ½ºÀÇ ÇÙ½ÉÀÎ ·Î±×ÀÎ ÇÁ·Î¼¼½º¸¦ Ä«Ä«¿À ·Î±×ÀÎ ÀÎÁõ API(Kakao Login API)¸¦ È°¿ëÇؼ ±¸ÇöÇغ¸·Á°í ÇÕ´Ï´Ù.
»çÀü ¼³Á¤
Ä«Ä«¿À ·Î±×ÀÎ ±â´ÉÀ» ±¸ÇöÇϱâ À§Çؼ´Â Ä«Ä«¿À °³¹ßÀÚ Áö¿ø »çÀÌÆ®¿¡ ·Î±×ÀÎÀ» ÇÏ¼Å¾ß ÇÕ´Ï´Ù. »ó´Ü¿¡ ¹èÄ¡µÈ ¸Þ´º¿¡¼ ³» ¾ÖÇø®ÄÉÀ̼ÇÀ̳ª ·Î±×ÀÎÀ» ´©¸£½Ã¸é ·Î±×ÀÎÀ» ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
Àú´Â ³» ¾ÖÇø®ÄÉÀ̼ÇÀ» ÅëÇؼ ·Î±×ÀÎÀ» Ç߱⠶§¹®¿¡ ¹Ù·Î ³» ¾ÖÇø®ÄÉÀÌ¼Ç ÆäÀÌÁö·Î À̵¿ÇÑ ¸ð½ÀÀÔ´Ï´Ù.
¾ÖÇø®ÄÉÀÌ¼Ç Ãß°¡
Å×½ºÆ®¸¦ À§Çؼ ¾ÖÇø®ÄÉÀ̼ÇÀ» Ãß°¡ÇÏ°Ú½À´Ï´Ù. ¾ÖÇø®ÄÉÀÌ¼Ç Ãß°¡Çϱ⠹öÆ°À» ´©¸£½Ã¸é ¾Æ·¡ ¾ÖÇø®ÄÉÀÌ¼Ç Ãß°¡¸¦ À§ÇØ ¾ÖÇø®ÄÉÀÌ¼Ç Á¤º¸¸¦ ±âÀÔÇϴ âÀÌ ¶å´Ï´Ù. Å×½ºÆ® ¿ëµµ·Î »ç¿ëÇÏ´Ï±î ´ëÃæ ÀÔ·ÂÇÏ°í ³Ñ¾î°¡°Ú½À´Ï´Ù.
¾ÖÇø®ÄÉÀÌ¼Ç Ãß°¡°¡ ¿Ï·áµÇ¾ú´Ù¸é, ÀÌÀü¿¡ ´·¶´ø ¾ÖÇø®ÄÉÀÌ¼Ç Ãß°¡Çϱ⠹öÆ° ¾Æ·¡¿¡ ÀúÈñ°¡ »ý¼ºÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¹Ù·Î ¾Æ·¡ À§Ä¡ÇÏ°í ÀÖ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. Çѹø ÀúÈñ°¡ »ý¼ºÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀ» »ìÆ캼±î¿ä?
»ý¼ºÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀ» ´©¸£½Ã¸é ¾Æ·¡¿Í °°ÀÌ °¢Á¾ Á¤º¸µéÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿ä¾à Á¤º¸ºÎÅÍ ½ÃÀÛÇؼ ÀϹÝ, ºñÁî´Ï½º, ¾Û Å°, Ç÷§Æû, ÆÀ °ü¸® µî ±²ÀåÈ÷ ´Ù¾çÇÑ ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ±×¸®°í ¿ä¾à Á¤º¸¿¡´Â ÀúÈñ°¡ »ý¼ºÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â ¾Û Å°°¡ Á¸ÀçÇÕ´Ï´Ù. ÇØ´ç Å°´Â ¿ÜºÎ¿¡ ³ëÃâµÇÁö ¾Êµµ·Ï Àß °ü¸®ÇØÁÖ¼¼¿ä.
ÀúÈñ´Â À¥ Ç÷§Æû¿¡¼ Ä«Ä«¿À ·Î±×ÀÎ ÀÎÁõÀ» ±¸ÇöÇϱ⠶§¹®¿¡ Ç÷§Æû ¼³Á¤Çϱâ·Î µé¾î°¡¼ À¥ Ç÷§Æû ºÎºÐÀÇ ¼³Á¤À» ¼öÁ¤Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù.
À¥ Ç÷§Æû Ãß°¡
Ç÷§Æû ¼³Á¤Çϱ⸦ µé¾î°¡¸é ¾Èµå·ÎÀ̵å(Android), 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¸¦ Ãß°¡ÇÏ°í, Kakao ÀνºÅϽº°¡ Á¤»óÀûÀ¸·Î È£ÃâµÇ´Â °ÍÀÌ È®ÀεǾúÀ¸¸é ÀÌÁ¦ initÀ» ÇØÁÙ Â÷·ÊÀÔ´Ï´Ù. ÀÌÀü¿¡ ³» ¾ÖÇø®ÄÉÀÌ¼Ç ÆäÀÌÁö¿¡¼ ¿ä¾à Á¤º¸³ª ¾Û Å° ÂÊ¿¡ ¾ÖÇø®ÄÉÀÌ¼Ç Javascript Å°°¡ ÀÖ´Â °ÍÀ» È®ÀÎÇß½À´Ï´Ù. Javascript Å°¸¦ È°¿ëÇؼ initÀ» ÇÏ°Ú½À´Ï´Ù.
Àú´Â componentDidMount ¶óÀÌÇÁ»çÀÌŬ¿¡¼ Kakao.initÀ» ÇØÁÖ°Ú½À´Ï´Ù. Kakao.init ÆĶó¹ÌÅÍ·Î ÀÚ¹Ù½ºÅ©¸³Æ® Å°¸¦ ³Ö¾îÁÝ´Ï´Ù.
componentDidMount() {
Kakao.init('¿©±â¿¡ ÀÚ¹Ù½ºÅ©¸³Æ® Å°¸¦ ÀÔ·ÂÇϼ¼¿ä.');
}
Kakao.initÀ» ¿¡·¯ ¾øÀÌ Àß ÀÛµ¿½ÃÄ×´Ù¸é ¾Æ·¡¿Í °°ÀÌ °ü·Ã APIµéÀ» »ç¿ëÇÒ ¼ö Àִ ȯ°æÀÌ ±¸¼ºµÇ¾úÀ½À» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ä«Ä«¿À ÀÎÁõ ±¸Çö
·Î±×ÀÎ
Ä«Ä«¿À ·Î±×ÀÎÀº ±âº»ÀûÀ¸·Î 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;
@µô·¹ÅÁÆ®
2020.07.23 17:23 ½Å°í
¿Í¿ì... ÀßÀº ¸ð¸£Áö¸¸, ¹«Ã´ ¿ä±äÇÏ°Ô ¾²ÀÏ ¼ö ÀÖ´Â Á¤º¸ÀÎ µíÇÕ´Ï´Ù.
Àß º¸°í °©´Ï´Ù. ^^
samm
2020.08.19 17:50
Çѹø ·Î±×ÀÎ ÇÏ°í ³ª¼ ´Ù½Ã È£Ãâ ÇßÀ» ¶§ ºó Æ˾÷ÀÌ ¶ß´Â ¹®Á¦´Â ¾ø¾ú³ª¿ä?
unlink ³ª ·Î±×¾Æ¿ô ÇÏ´õ¶óµµ Àá½Ãµ¿¾ÈÀº ºóÆ˾÷¸¸ ¶ß´Â Çö»óÀÌ ÀÖ´øµ¥¿ä~
Rechard Virus
2020.08.22 21:23 ½Å°í
¹öÆ° »ý¼ºÀÌ ¾ÈµÇ¿ä
Rechard Virus
2020.08.22 21:42 ½Å°í
·Î±×Àΰú ·Î±×¾Æ¿ô ¹öÆ°ÀÔ´Ï´Ù
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·Î ¸¸µç ¸ð¹ÙÀϾۿ¡¼´Â Ä«Ä«¿À °£Æí·Î±×ÀÎÀÌ ÀÛµ¿À» ¾ÈÇÕ´Ï´Ù.
°³¹ß»ç¿¡¼ ÇÏ´Â ¸»ÀÌ ¸ð¹ÙÀϾۿ¡¼´Â Ä«Ä«¿À °£Æí·Î±×ÀÎÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù°í Çϴµ¥ »ó½ÄÀûÀ¸·Î ÀÌÇØ°¡ ¾ÈµÇ¼¿ä
Á¤¸» ¾ÈµÇ´Â °Ç°¡¿ä?
¾Ë°í°è½Ã¸é ´äº¯ ºÎŹµå¸³´Ï´Ù.
steadily-worked
2021.05.15 23:14 ½Å°í
¾È³çÇϼ¼¿ä. ÀÌ ¹æ½Ä´ë·Î ÇÏ¿© ·Î±×ÀÎÀº Àß ±¸ÇöÀ» Çߴµ¥, ÀÌ°Ô ÅäÅ«À» ÄíÅ°¿¡ ¼¼ÆÃÇÏ´Â ¹æ½ÄÀΰ¡¿ä? ¾Æ´Ï¸é localStorage¿¡ µé¾î°¡ ÀÖ´Â ¹æ½ÄÀΰǰ¡¿ä?