github์ accessToken์ ์๋ต๋ฐ๊ธฐ ์ํด ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
axios({
method: 'POST',
url: `https://github.com/login/oauth/access_token`,
data: {
client_id: clientID,
client_secret: clientSecret,
code: req.body.authorizationCode,
},
})
.then((data) => {
let accessToken = data.data.split('&').map((v) => v.split('='))[0][1];
res.status(200).send({ accessToken });
})
.catch((err) => {
//! catch๋ก ์๋ฌ ์ก์์ฃผ๊ธฐ
console.log(err);
});
data.data์ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด string ํ์ ์ผ๋ก ์๋ต์ ๋ฐ๊ฒ ๋๋ค.
access_token=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&scope=&token_type=bearer
๋ด๊ฐ ํ์๋ก ํ๋ ๊ฐ์ access_token์ด๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ๋ณต์กํ ์ถ์ถ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๋ค.
let accessToken = data.data.split('&').map((v) => v.split('='))[0][1];
๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋ ๊ฒ์ ๋ฌธ์ ์์ง๋ง, ์ข ๋ ๋ณต์กํ response๋ฅผ ๋ฐ๊ฒ๋๋ฉด ์ํ๋ ๊ฐ์ ์ถ์ถ์ด ์ด๋ ค์ ๋ณด์๋ค.
axios({
method: 'POST',
url: `https://github.com/login/oauth/access_token`,
headers: {
accept: 'application/json',
},
data: {
client_id: clientID,
client_secret: clientSecret,
code: req.body.authorizationCode,
},
})
.then((data) => {
let accessToken = data.data.access_token;
res.status(200).send({ accessToken });
})
.catch((err) => {
//! catch๋ก ์๋ฌ ์ก์์ฃผ๊ธฐ
console.log(err);
});
์์ ๊ฐ์ด ์๋ต์ ๋ฐ๋ accept ํ์
์ json ํ์์ผ๋ก ์ง์ ํด ์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ฌ๋ฉด ๋ค์๊ณผ ๊ฐ์ด response๋ฅผ ๋ฐ๋๋ค.
{
access_token: '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',
token_type: 'bearer',
scope: ''
}
json ํ์์ผ๋ก ์๋ต์ ๋ฐ๊ธฐ ๋๋ฌธ์ ํ์๋กํ๋ value๋ฅผ ์ถ์ถํ๊ธฐ๊ฐ ๋์ฑ ํธ๋ฆฌํด์ง๋ค.
let accessToken = data.data.access_token;
๊ทธ๋ฅ string ํ์ ์ผ๋ก ๋ฐ๋ ๊ฒ๊ณผ๋ ๋ค๋ฅด๊ฒ ๊ทธ๋ฅ ํ์๋กํ๋ ํค๊ฐ์ผ๋ก ๋์ถํ๋ฉด ๋๋ค.