fixing route

This commit is contained in:
Warunee Tamkoo 2024-12-17 16:31:51 +07:00
parent 00bc8e097b
commit 8fa8a81891

39
sso.js
View file

@ -13,7 +13,7 @@ const fs = require("fs");
const axios = require("axios"); const axios = require("axios");
const cookieName = process.env.SSO_COOKIE_NAME || "ssotoken"; const cookieName = process.env.SSO_COOKIE_NAME || "ssotoken";
const privateKey = fs.readFileSync(`${process.cwd()}/BMA`, "utf8"); const privateKey = fs.readFileSync(`./BMA`, "utf8");
const signOptions = { const signOptions = {
issuer: "BMA corp", issuer: "BMA corp",
subject: "sso@bangkok.go.th", subject: "sso@bangkok.go.th",
@ -27,12 +27,12 @@ const urlKeycloakToken = `${process.env.KC_URL}/realms/${process.env.KC_REALMS}/
const app = express(); const app = express();
app.use(cors({ app.use(cors({
origin: "*", origin: "*",
credentials: true, // credentials: true,
})); }));
app.use(express.urlencoded({ extended: true })); app.use(express.urlencoded({ extended: true }));
app.use(express.json()); app.use(express.json());
app.use(cookieParser()); app.use(cookieParser());
app.post("/signin", async (req, res) => { app.post("/api/v1/sso/signin", async (req, res) => {
try { try {
const login_user = req.body; const login_user = req.body;
@ -43,15 +43,13 @@ app.post("/signin", async (req, res) => {
formdata.append("username", login_user.username); formdata.append("username", login_user.username);
formdata.append("password", login_user.password); formdata.append("password", login_user.password);
// console.log("formdata===>", formdata); console.log("formdata===>", formdata);
const response = await axios.post(urlKeycloakToken, formdata, { const response = await axios.post(urlKeycloakToken, formdata, {
headers: { headers: {
"Content-Type": "application/x-www-form-urlencoded", "Content-Type": "application/x-www-form-urlencoded",
}, },
}); }).then(() => {
if (response.data) {
const payload = { username: login_user.username }; const payload = { username: login_user.username };
let token = jwt.sign(payload, privateKey, signOptions); let token = jwt.sign(payload, privateKey, signOptions);
@ -62,22 +60,25 @@ app.post("/signin", async (req, res) => {
}); });
res.sendStatus(200); res.sendStatus(200);
} else { }).catch((err) => {
res.status(401).send("Incorrect user or password"); if (err.status) {
} res.status(401).send("Incorrect user or password");
} else
res.status(err.status).send(error);
});
} catch (error) { } catch (error) {
res.status(500).send("Incorrect user or password!"); res.status(500).send(error);
} }
}); });
// kcauth app.post("/api/v1/sso/kcauth", async (req, res) => {
const useBMA = Boolean(process.env.USE_BMA) || false;
const publicKeyLanding = fs.readFileSync(`${process.cwd()}/BMA.pub.pem`, "utf8");
const clientSecret = process.env.KC_CLIENT_SECRET;
const clientId = process.env.KC_CLIENT_ID;
app.post("/kcauth", async (req, res) => {
try { try {
// kcauth
const useBMA = Boolean(process.env.USE_BMA) || false;
const publicKeyLanding = fs.readFileSync(`./BMA.pub.pem`, "utf8");
const clientSecret = process.env.KC_CLIENT_SECRET;
const clientId = process.env.KC_CLIENT_ID;
const cookies = req.cookies; const cookies = req.cookies;
const tokenSSO = cookies[cookieName]; const tokenSSO = cookies[cookieName];
@ -142,7 +143,7 @@ app.post("/kcauth", async (req, res) => {
} catch (error) { } catch (error) {
// console.log("error===>", error); // console.log("error===>", error);
res.status(401).send(error); res.status(500).send(error);
} }
}) })