Closed Turtlepaw closed 2 years ago
I'm using passport-discord 0.1.4, next v12.1.5-canary.7, and next-connect 0.12.2
0.1.4
v12.1.5-canary.7
0.12.2
This is my API route:
// api/oauth/discord import nc from "next-connect"; import passport from "passport"; import { Strategy as DiscordStrategy } from "passport-discord"; import { findOrCreate, findWithConnection } from "../../../../utils/db"; import { ConnectionNames } from "../../../../utils/entities/user"; import { Avatar } from "../../../../utils/utils"; import OAuth2Strategy, { VerifyCallback } from "passport-oauth2"; import { NextApiRequest, NextApiResponse } from "next"; passport.use( new DiscordStrategy( { clientID: process.env.CLIENT_ID, clientSecret: process.env.CLIENT_SECRET, callbackURL: 'http://localhost:3000/api/oauth/discord' }, function (accessToken: string, refreshToken: string, params: any, profile: DiscordStrategy.Profile, done: VerifyCallback) { const user = findWithConnection({ provider: ConnectionNames.Discord, Id: profile.id, avatarURL: Avatar.from(profile.avatar, profile.id), email: profile.email, username: profile.username }); done(null, user); } ) ) const handler = nc<NextApiRequest, NextApiResponse>() .get(passport.authenticate('discord', { scope: ['identify', 'email'], }), (req, res) => { }) export default handler;
When I go to /api/oauth/discord and authorize using Discord, I get this error (not from discord but my site):
/api/oauth/discord
Login sessions require session support. Did you forget to use `express-session` middleware?
You need to use express-session as the message says. Check out https://github.com/hoangvvo/nextjs-mongodb-app for an integration with passport.
express-session
passport
Ok 👍
I'm using passport-discord
0.1.4
, nextv12.1.5-canary.7
, and next-connect0.12.2
This is my API route:
When I go to
/api/oauth/discord
and authorize using Discord, I get this error (not from discord but my site):