Introduces legacy endpoints for login, joinserver, and checkserver, along with their input validation schemas. Updates sessionsService with joinLegacyServer to support legacy session handling. This enables compatibility with legacy clients requiring these authentication flows.
36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
const express = require("express")
|
|
const router = express.Router()
|
|
const crypto = require("crypto")
|
|
const authService = require("../../services/authService")
|
|
const sessionsService = require("../../services/sessionsService")
|
|
const logger = require("../../modules/logger")
|
|
|
|
router.all("/", async (req, res) => {
|
|
const { user, password } = { ...req.query, ...req.body }
|
|
|
|
try {
|
|
const result = await authService.authenticate({
|
|
identifier: user,
|
|
password,
|
|
clientToken: "",
|
|
requireUser: false
|
|
})
|
|
|
|
const profile = result.response.selectedProfile
|
|
const sessionId = crypto.randomBytes(16).toString("hex")
|
|
|
|
await sessionsService.registerLegacySession({
|
|
uuid: profile.id,
|
|
sessionId
|
|
})
|
|
|
|
logger.log(`Legacy Login: ${user}`, ["AUTH", "green"])
|
|
|
|
const timestamp = Date.now()
|
|
return res.send(`${timestamp}:deprecated:${profile.name}:${sessionId}:${profile.id}`)
|
|
} catch (err) {
|
|
return res.send("Bad login")
|
|
}
|
|
})
|
|
|
|
module.exports = router |