-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Infinite authentication loop on protected route #1142
Comments
Thanks, I've never used passport-microsoft, so I can't really help here. |
Something similar happens with MRE: "use strict";
const { readFileSync } = require("fs");
const { join } = require("path");
const fastify = require("fastify")({ logger: true });
const passport = require("@fastify/passport");
const secureSession = require("@fastify/secure-session");
const { Strategy: GoogleStrategy } = require("passport-google-oauth20");
const PORT = 3000;
const BASE_URL = "http://localhost";
const CLIENT_ID = "...";
const CLIENT_SECRET = "...";
const CALLBACK = `${BASE_URL}:${PORT}/google/callback`;
// --- plugins (from the Fastify ecosystem) ---
fastify.register(secureSession, {
key: readFileSync(join(__dirname, "secret-key")),
});
fastify.register(passport.initialize());
fastify.register(passport.secureSession());
passport.use(
"google",
new GoogleStrategy(
{
clientID: CLIENT_ID,
clientSecret: CLIENT_SECRET,
callbackURL: CALLBACK,
scope: ['email', 'profile'],
},
function (accessToken, refreshToken, profile, done) {
done(null, profile);
}
)
);
passport.registerUserSerializer(async (user) => user.id);
passport.registerUserDeserializer(async (user) => user);
// --- routes ---
const defRoutes = [
{
method: "GET",
url: `/auth/login`,
preValidation: passport.authenticate("google", {
authInfo: false,
}),
handler: (req, res, err, user, status) => {},
},
{
method: "GET",
url: `/google/callback`,
preValidation: passport.authenticate("google", {
authInfo: false,
successRedirect: "/",
}),
handler: (req, res) => {},
},
{
method: "GET",
url: `/`,
preValidation: passport.authenticate("google", { authInfo: false }),
handler: (req, res) => {
return res.send(req.user);
},
},
];
// Add all routes into Fastify route system
for (const route of defRoutes) {
fastify.route(route);
}
async function start() {
try {
fastify.listen({ port: PORT });
} catch (e) {
throw e;
}
}
start(); |
I'm having this same issue with |
|
Prerequisites
Fastify version
4.27.0
Plugin version
2.4.0
Node.js version
20.11.1
Operating system
macOS
Operating system version (i.e. 20.04, 11.3, 10)
14.4.1
Description
Hello. I am trying to use
passport-microsoft
and my issue is that after I have been authenticated and the callback URL has been reached and I am redirected to the protected route '/', I get prompted to log in again, this happens over and over again.Here's an MRE:
I am not sure if I am missing anything or what the issue is.
Link to code that reproduces the bug
No response
Expected Behavior
I am not prompted to log in again when redirected to the '/' route
The text was updated successfully, but these errors were encountered: