2
respostas

Como consertar o erro: 'Failed to obtain access token' ?

Olá, concluí o curso Nodejs Auth com Passport Oauth-2 mas um problema ainda não foi resolvido. Toda vez que eu termino de digitar minhas credenciais na página de login do Github, eu recebo este erro na minha aplicação Nodejs:
Error: Failed to obtain access token at C:\Auth-Node\node-oauth-aula_5_docker\node_modules\passport-oauth2\lib\strategy.js:178:49 at C:\Auth-Node\node-oauth-aula_5_docker\node_modules\oauth\lib\oauth2.js:214:7 at passBackControl (C:\Auth-Node\node-oauth-aula_5_docker\node_modules\oauth\lib\oauth2.js:134:9) at IncomingMessage.<anonymous> (C:\Auth-Node\node-oauth-aula_5_docker\node_modules\oauth\lib\oauth2.js:157:7) at IncomingMessage.emit (node:events:531:35) at endReadableNT (node:internal/streams/readable:1696:12) at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
, já tentei de tudo, inclusive eu substituí o profile.id por accessToken neste trecho do
código do arquivo passport-config.js:

passport.use(new GitHubStrategy({ clientID: process.env.GITHUB_CLIENT_ID, clientSecret: process.env.GITHUB_CLIENT_SECRET, callbackURL: "http://localhost:3000/auth/github/callback"}, function(accessToken, refreshToken, profile, done) { console.log(profile); return done(null, accessToken);//(err, profile.id); }))

E mesmo assim o problema persiste. Alguém sabe o que está acontecendo??

2 respostas

Olá Antonio! Como vai?

Esse erro "Failed to obtain access token" está geralmente relacionado a problemas na configuração do OAuth com o GitHub. Aqui estão algumas coisas que você pode verificar para tentar resolver o problema:

  1. Credenciais do GitHub: Certifique-se de que GITHUB_CLIENT_ID e GITHUB_CLIENT_SECRET estão corretamente configurados no seu arquivo de variáveis de ambiente. Um erro comum é copiar essas credenciais de forma incorreta ou esquecer de reiniciar o servidor após alterá-las.

  2. Callback URL: Verifique se a URL de callback configurada no GitHub Developer Settings está correta. Ela deve coincidir exatamente com a callbackURL que você configurou no GitHubStrategy. No seu caso, deve ser http://localhost:3000/auth/github/callback.

  3. Verifique a Resposta do Servidor: Pode ser útil adicionar um log para ver o que está sendo retornado pelo GitHub quando a tentativa de obter o token falha. Isso pode te dar mais pistas sobre o que está acontecendo.

  4. Rede e Firewall: Verifique se não há bloqueios de rede ou firewall que possam estar interferindo na comunicação entre sua aplicação e o GitHub.

Se todas essas verificações não resolverem o problema, pode ser útil verificar os logs do GitHub para ver se há mais detalhes sobre a falha na obtenção do token.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Armano, obrigado pela ajuda. Mas só funcionou quando eu gerei um novo Github Secret e substituí o parametro profile.id por accessToken ->

 `return done(null, accessToken);`