node.js - OIDC Callback: axios-kall fungerer ikke inne i router.get
Jeg får ikke API-en min til å fungere med Express-serveren min med OAuth2-logikk, jeg får alltid en feil siden jeg hadde res.render, jeg kommenterte det ut, nå fungerer ikke hele delen som er router.get for axios.post inni den. Her er kodesnutten:
mport {Request, Response, Router} from 'express';
import {writeFile, readFile, unlinkSync, unlink} from 'fs';
import {URLSearchParams} from 'url';
import axios from 'axios';
import qs from 'querystring';
const router: Router = Router();
...
//OIDC Callback
router.get('/callback', async function ({ query }, res, next) {
console.log("In Callback...");
if (query.error) {
const description = query.error_description;
return res.render('error', {
error: description
});
}
try {
const code = query.code;
const basicAuthHeader = Buffer.from(`${settings.clientId}:${settings.clientSecret}`).toString('base64');
console.log("Inside callback...token details: "+ settings.clientSecret);
const main_token = (await axios.post(metaData.token_endpoint, qs.stringify({
grant_type: 'authorization_code',
redirect_uri: settings.callbackUrl,
code,
scope: settings.scopes
}), {
headers: {
'Accept': 'application/json',
'Authorization': `Basic ${basicAuthHeader}`,
'Content-Type': 'application/x-www-form-urlencoded'
}
})).data;
const checkAURL = await needsAURL();
if (checkAURL) {
res.redirect(checkAURL);
} else {
// res.render('index', settings);
console.log("inside else...");
}
} catch (e) {
console.log("Error..Need organization access");
// return res.render('error', {
// error: e
// });
}
});
Jeg er ganske sikker på at det er på grunn av innstillingene for Express-router, men jeg kan ikke fikse dette. Hvis jeg gjør en axios.get inne i router.get, fungerer det. Men i dette tilfellet kan jeg ikke gjøre det.
Brukte jeg express-ruter riktig? Fordi jeg har aldri brukt det før.