nicholastay / passport-discord

Passport strategy for authentication with Discord (discordapp.com)
ISC License
172 stars 55 forks source link

TokenError: Missing "code_verifier" #55

Closed NanduWasTaken closed 1 year ago

NanduWasTaken commented 1 year ago

ERROR TokenError: Missing "code_verifier" at OAuth2Strategy.parseErrorResponse (/home/runner/walnut/node_modules/passport-oauth2/lib/strategy.js:373:12) at OAuth2Strategy._createOAuthError (/home/runner/walnut/node_modules/passport-oauth2/lib/strategy.js:420:16) at /home/runner/walnut/node_modules/passport-oauth2/lib/strategy.js:177:45 at /home/runner/walnut/node_modules/oauth/lib/oauth2.js:191:18 at passBackControl (/home/runner/walnut/node_modules/oauth/lib/oauth2.js:132:9) at IncomingMessage.<anonymous> (/home/runner/walnut/node_modules/oauth/lib/oauth2.js:157:7) at IncomingMessage.emit (node:events:525:35) at IncomingMessage.emit (node:domain:489:12) at endReadableNT (node:internal/streams/readable:1359:12)

My discord.js file

const passport = require('passport');
const DiscordStrategy = require('passport-discord').Strategy;
const scopes = ['identify', 'email', 'guilds', 'guilds.join'];
const Users = require('./../models/user');

passport.serializeUser(function(user, done) {
cnsole.log(user)
  done(null, user);
});
passport.deserializeUser(function(obj, done) {
  console.log(obj)
  done(null, obj);
});
passport.use(new DiscordStrategy({
    clientID: '**************',
    clientSecret: process.env.secret,
    callbackURL: 'https://************/auth/discord/callback',
    scope: scopes
},
 async function(accessToken, refreshToken, profile, cb) {
   console.log(accessToken, refreshToken, profile, cb)
}));

Auth.js


const express = require('express');
const router = express.Router()
const passport = require('passport');

router.get('/discord', passport.authenticate('discord'));
router.get('/discord/callback', passport.authenticate('discord', {
    failureRedirect: '/'
}), function(req, res) {
    res.redirect('/secretstuff') // Successful auth
});

module.exports = router;
NanduWasTaken commented 1 year ago

What am I doing wrong here??

NanduWasTaken commented 1 year ago

It got fixed by adding a code_verifier and code parameter by using crypto module