第二編ココアソーシャルログイン実現(認証コード付きコイン受領)
3833 ワード
上のコード(wecode)サブプロジェクト
ステップ
[2段階]:KACAから受け取った認証コードでKACAにトークンを要求する
認証コードを受け取りましたが、これを持ってどうやって再びKakaoにリクエストしてTokenを受けに来たのか、長い時間をかけてGoogle検索をして理解できず、最後に指導者に質問して説明を聞いてようやく実現しました.
問:どのようにコードを抽出して管理しますか?🔍
kakaoに登録したリダイレクトURLで、承認コード(コード部分に含まれる)を同時に送信します.このURLから承認コードを抽出するためにGoogleを使い、URL SearchParamsを書けばいいというヒントを得て、mdn公式ドキュメントを調べました.これにより、以下のコードが作成されます.これによりコード部分のみが抽出され,承認コードのみがうまく確認できる.
const Login = () => {
let params = new URLSearchParams(document.location.search);
let code = params.get('code');
console.log(code);
...
}
2つ目の質問:このような認証コードを受け取って、どのようにKAKAにコインを申請しますか?🔍
結局、TALKENを貰おうとするとKACAからの認証コードをKACAサーバーに再送信することになりますが、この方法はKACA公式ページに上記の内容が書かれています.しかし、問題は、私がそれを読んでも、私はそれを理解する能力がありません.「目が見えない」というのが私の意味です.最後にこの点を理解するために、私は同級生と指導者に問題を提出して、彼らの説明のおかげで、私はやっと私の知らないところを知って学んだ.fetchについてはよく理解できず、googlingなどでコードを実装しただけで、結果的に他のものに適用できず、問題が発生しました.
最終的には上記のようにKACAサーバにデータを要求する.公式文書にはurlと各パラメータ、および対応する値が親切にリストされています.このように編成されたコードは以下の通りである.最初はasyncで非同期を処理しjsonを送信したが成功しなかった.Googleが検索したところ、何人かがqs(クエリーリスト)で起動していることがわかり、qsnpmをダウンロードしてqsで転送すると、書き直したことが確認され、無事にコインが届いた.
const getToken = async () => {
try {
await fetch('https://kauth.kakao.com/oauth/token', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
},
body: qs.stringify({
grant_type: 'authorization_code',
client_id: restApiKey,
redirect_uri: redirectUrl,
code: code,
client_secret: clientSecret,
}),
})
.then(res => res.json())
.then(data => console.log(data));
} catch (err) {
console.error(err);
}
};
useEffect(() => {
getToken();
});
私個人の気持ち
-参考資料
[ココ公式ファイル]
https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api
[MDNのURL SearchParams.get()
https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams/get
[MDNの使用Fetch]
https://developer.mozilla.org/ko/docs/Web/API/Fetch_API/Using_Fetch
[反応公式ドキュメント]
https://ko.reactjs.org/docs/hooks-effect.html
[npm qs]
https://www.npmjs.com/package/qs
Reference
この問題について(第二編ココアソーシャルログイン実現(認証コード付きコイン受領)), 我々は、より多くの情報をここで見つけました https://velog.io/@youngloper77/소셜-로그인카카오-구현-2편인가코드를-가지고-토큰받기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol