2021-12-20 14:49:15 +00:00
|
|
|
|
const request = require("../requestManager.js");
|
|
|
|
|
const authService = require("./authService.js");
|
|
|
|
|
const portalManager = require("../portalManager.js");
|
|
|
|
|
|
|
|
|
|
module.exports = (socket, next) => {
|
2021-12-20 12:38:08 +00:00
|
|
|
|
const req = socket.client.request;
|
|
|
|
|
const session = socket.handshake.session;
|
2021-12-20 14:49:15 +00:00
|
|
|
|
const cookie = req.cookies["asc_auth_key"];
|
2020-08-02 20:12:45 +00:00
|
|
|
|
|
2021-12-20 14:49:15 +00:00
|
|
|
|
if (!req.cookies || !cookie) {
|
2021-12-20 12:38:08 +00:00
|
|
|
|
socket.disconnect("unauthorized");
|
|
|
|
|
next(new Error("Authentication error"));
|
|
|
|
|
return;
|
|
|
|
|
}
|
2020-08-02 20:12:45 +00:00
|
|
|
|
|
2021-12-20 14:49:15 +00:00
|
|
|
|
// if (req.cookies["authorization"]) {
|
|
|
|
|
// if (!authService(req)) {
|
|
|
|
|
// next(new Error("Authentication error"));
|
|
|
|
|
// } else {
|
|
|
|
|
// next();
|
|
|
|
|
// }
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
2020-08-02 20:12:45 +00:00
|
|
|
|
|
2021-12-20 14:49:15 +00:00
|
|
|
|
let headers;
|
|
|
|
|
if (cookie)
|
|
|
|
|
headers = {
|
|
|
|
|
Authorization: cookie,
|
|
|
|
|
};
|
2020-08-02 20:12:45 +00:00
|
|
|
|
|
2021-12-20 14:49:15 +00:00
|
|
|
|
const basePath = portalManager(req).replace(/\/$/g, "");
|
|
|
|
|
|
|
|
|
|
const getUser = () => {
|
|
|
|
|
return request({
|
|
|
|
|
method: "get",
|
|
|
|
|
url: "/people/@self.json?fields=id,userName,displayName",
|
|
|
|
|
headers,
|
|
|
|
|
basePath,
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const getPortal = () => {
|
|
|
|
|
return request({
|
|
|
|
|
method: "get",
|
|
|
|
|
url: "/portal.json?fields=tenantId,tenantDomain",
|
|
|
|
|
headers,
|
|
|
|
|
basePath,
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return Promise.all([getUser(), getPortal()])
|
|
|
|
|
.then(([user, portal]) => {
|
|
|
|
|
session.user = user;
|
|
|
|
|
session.portal = portal;
|
|
|
|
|
session.save();
|
|
|
|
|
next();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
|
|
|
|
socket.disconnect("Unauthorized");
|
|
|
|
|
next(new Error("Authentication error"));
|
|
|
|
|
});
|
2021-12-20 12:38:08 +00:00
|
|
|
|
};
|