Я пишу SSO с помощью GitHub и не могу извлечь access_token после использования функции fetch ()
const url = `https://github.com/login/oauth/access_token?client_id=${process.env.GITHUB_CLIENT_ID}&redirect_uri=${process.env.GITHUB_REDIRECT_URI}&client_secret=${process.env.GITHUB_CLIENT_SECRET}&code=${code}`;
fetch(url, {method: 'POST'}).then(result => result.text())
.then(text => {
console.log('text', text)
access_token = JSON.parse(text)['access_token']
})
результат:
text access_token=fe07bb27637ac176058f2&scope=user%3Aemail&token_type=bearer
Какой файл! Но следующий шаг - получить access_token не удалось с:
UnhandledPromiseRejectionWarning: SyntaxError: Unexpected token e in JSON at position 0
at JSON.parse (<anonymous>)
Я переписал эту часть с помощью суперагента, и он отлично работает. Но все же хочу сделать это возможным с помощью fetch ()
superagent
.post('https://github.com/login/oauth/access_token')
.send({
client_id: `${process.env.GITHUB_CLIENT_ID}`,
redirect_uri: `${process.env.GITHUB_REDIRECT_URI}`,
client_secret: `${process.env.GITHUB_CLIENT_SECRET}`,
code: `${code}`
}) // sends a JSON post body
.set ('Accept', 'application/json')
.end((err, result) => {
const token = result.body.access_token
Надеюсь, вы поможете мне выяснить, почему моя fetch () не работает ...