20 lines
658 B
JavaScript
20 lines
658 B
JavaScript
const fs = require("node:fs")
|
|
const jwt = require("jsonwebtoken")
|
|
const path = require("node:path")
|
|
const express = require("express")
|
|
const router = express.Router()
|
|
const controller = require("../controllers/db")
|
|
|
|
const privateKey = fs.readFileSync(path.join(__dirname, "..", "keys", "private.pem"))
|
|
|
|
router.get("/external/key.pem", (req, res) => {
|
|
res.sendFile(path.join(__dirname, "..", "keys", "public.pem"))
|
|
})
|
|
|
|
router.post("/internal", controller.login, (req, res) => {
|
|
delete req.user.token
|
|
const token = jwt.sign(req.user, privateKey, { algorithm: "RS256", expiresIn: "168h" })
|
|
res.status(200).send(token)
|
|
})
|
|
|
|
module.exports = router |