88 lines
2.2 KiB
JavaScript
88 lines
2.2 KiB
JavaScript
var express = require('express');
|
|
var router = express.Router();
|
|
var path = require("path")
|
|
var auth = require("../../modules/sub-auth")
|
|
var log = require("../../modules/sub-log")
|
|
var uuid = require("uuid")
|
|
|
|
const wlog = log.getInstance("Web")
|
|
const alog = log.getInstance("Authentification")
|
|
|
|
router.get('/redirect', function(req, res, next) {
|
|
|
|
if(auth.checkUser(req.cookies.token)) {
|
|
|
|
res.redirect("/")
|
|
} else {
|
|
|
|
if(auth.getSession(req.cookies.session)) {
|
|
|
|
if(req.query.code) {
|
|
|
|
alog.step.init("get_discord_info_" + req.cookies.session , "Récupération des informations de l'utilisateur associé à l'autorisation : '" + req.cookies.sessionn + "'")
|
|
|
|
const user = auth.getDiscordUser(req.query.code, req.cookies.session)
|
|
|
|
user.then(data => {
|
|
|
|
alog.step.end("get_discord_info_" + req.cookies.session)
|
|
|
|
var user = data
|
|
const token = uuid.v4().toString()
|
|
|
|
user.token = token
|
|
auth.addUser(user)
|
|
|
|
res.cookie("token", token, { maxAge: 90000000000000, httpOnly: true })
|
|
|
|
auth.removeSession(req.cookies.session)
|
|
res.clearCookie("session")
|
|
res.redirect("/")
|
|
|
|
}).catch(error => {
|
|
|
|
alog.step.error("get_discord_info_" + req.cookies.session)
|
|
console.log(error)
|
|
res.redirect('/login?error=CANCEL_LOGIN')
|
|
|
|
})
|
|
|
|
|
|
} else {
|
|
|
|
res.redirect('/login?error=CANCEL_LOGIN')
|
|
}
|
|
|
|
} else {
|
|
|
|
res.redirect("/login")
|
|
}
|
|
}
|
|
|
|
});
|
|
|
|
router.get("/socketlink", (req,res,next) => {
|
|
|
|
if(process.env.DEV == true) {
|
|
|
|
res.send("ws://localhost:4000")
|
|
} else {
|
|
res.send("ws://subsonics.raphix.fr")
|
|
}
|
|
})
|
|
|
|
router.get("/logout", (req,res,next) => {
|
|
|
|
if(auth.checkUser(req.cookies.token)) {
|
|
|
|
auth.removeUser(req.cookies.token)
|
|
res.clearCookie("token")
|
|
res.redirect(302, "/login")
|
|
} else {
|
|
|
|
res.redirect(302, "/login")
|
|
}
|
|
})
|
|
|
|
|
|
module.exports = router; |