This commit is contained in:
Spencer Killen 2026-08-03 11:53:01 -06:00
parent 774a6864a2
commit c230de4915

View file

@ -19,7 +19,7 @@ const app = express();
const database: Record<
string,
{ oidConfig: oid.Configuration; pkceCodeVerifier: string }
{ oidConfig: oid.Configuration; pkceCodeVerifier: string, url: string }
> = {};
app.get("/login", async (req, res) => {
@ -30,6 +30,7 @@ app.get("/login", async (req, res) => {
}
const cbid = uid();
const redirect_uri = `${CLIENT_URL}/callback/${cbid}`;
console.log("Redirect URI is", redirect_uri)
const provider = new URL(req.query.provider);
const oidConfig = await oid.dynamicClientRegistration(
provider,
@ -44,7 +45,7 @@ app.get("/login", async (req, res) => {
);
const pkceCodeVerifier = oid.randomPKCECodeVerifier();
const code_challenge = await oid.calculatePKCECodeChallenge(pkceCodeVerifier);
database[cbid] = { oidConfig, pkceCodeVerifier };
database[cbid] = { oidConfig, pkceCodeVerifier, url: redirect_uri };
setTimeout(() => {
delete database[cbid];
}, 600000 /* 10 minutes */);
@ -65,9 +66,10 @@ app.get("/callback/:cbid", async (req, res) => {
res.end();
return;
}
const { oidConfig, pkceCodeVerifier } = database[cbid]!;
const fullUrl = `${req.protocol}://${req.get("host")}${req.url}`;
const url = new URL(fullUrl);
const { oidConfig, pkceCodeVerifier, url: redirect_uri } = database[cbid]!;
const url = new URL(redirect_uri + req.query);
console.log("URL")
console.log(redirect_uri + req.query);
let tokens = await oid
.authorizationCodeGrant(oidConfig, url, {
pkceCodeVerifier,