serverpreconfigured 2.2.13 → 2.2.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +6 -4
- package/spc_envfile.json +4 -1
- package/src/database/database.ts +2 -2
- package/src/logs/logs.ts +127 -0
- package/dist/auth/auth.d.ts +0 -3
- package/dist/auth/auth.js +0 -22
- package/dist/auth/config.d.ts +0 -1
- package/dist/auth/config.js +0 -4
- package/dist/database/database.d.ts +0 -2
- package/dist/database/database.js +0 -11
- package/dist/database/models/User.d.ts +0 -9
- package/dist/database/models/User.js +0 -19
- package/dist/database/models/WSAuth.d.ts +0 -6
- package/dist/database/models/WSAuth.js +0 -19
- package/dist/expressServer.d.ts +0 -20
- package/dist/expressServer.js +0 -52
- package/dist/middlewares/auth.d.ts +0 -6
- package/dist/middlewares/auth.js +0 -35
- package/dist/middlewares/post.d.ts +0 -1
- package/dist/middlewares/post.js +0 -6
- package/dist/middlewares/wsauth.d.ts +0 -1
- package/dist/middlewares/wsauth.js +0 -56
- package/dist/modules/initcors.d.ts +0 -1
- package/dist/modules/initcors.js +0 -13
- package/dist/modules/postreader.d.ts +0 -1
- package/dist/modules/postreader.js +0 -12
- package/dist/modules/sessions.d.ts +0 -1
- package/dist/modules/sessions.js +0 -20
- package/dist/routes/auth.d.ts +0 -2
- package/dist/routes/auth.js +0 -56
- package/dist/routes/userauth.d.ts +0 -2
- package/dist/routes/userauth.js +0 -68
- package/dist/routes/userresgister.d.ts +0 -2
- package/dist/routes/userresgister.js +0 -42
- package/dist/routes/users.d.ts +0 -2
- package/dist/routes/users.js +0 -90
- package/dist/routes/wsauth.d.ts +0 -1
- package/dist/routes/wsauth.js +0 -33
- package/dist/server.d.ts +0 -15
- package/dist/server.js +0 -42
- package/dist/sessions/secureget.d.ts +0 -1
- package/dist/sessions/secureget.js +0 -7
- package/dist/sessions/secureset.d.ts +0 -2
- package/dist/sessions/secureset.js +0 -11
- package/dist/settings/database/database.d.ts +0 -11
- package/dist/settings/database/database.js +0 -15
- package/dist/settings/env.d.ts +0 -15
- package/dist/settings/env.js +0 -30
- package/dist/users/password.d.ts +0 -3
- package/dist/users/password.js +0 -41
- package/dist/users/types.d.ts +0 -6
- package/dist/users/types.js +0 -3
- package/dist/users/users.d.ts +0 -12
- package/dist/users/users.js +0 -143
- package/dist/utils/debug/debug.d.ts +0 -1
- package/dist/utils/debug/debug.js +0 -15
- package/dist/utils/response.d.ts +0 -8
- package/dist/utils/response.js +0 -27
- package/dist/utils/string/random.d.ts +0 -1
- package/dist/utils/string/random.js +0 -14
- package/dist/utils/validators/email.d.ts +0 -1
- package/dist/utils/validators/email.js +0 -18
- package/dist/wsauth/types.d.ts +0 -0
- package/dist/wsauth/types.js +0 -1
- package/dist/wsauth/wsauth.d.ts +0 -5
- package/dist/wsauth/wsauth.js +0 -111
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "serverpreconfigured",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.15",
|
|
4
4
|
"description": "\"Pre-configured server with authentication system and database integration\"",
|
|
5
5
|
"main": "dist/server.js",
|
|
6
6
|
"keywords": [
|
|
@@ -31,16 +31,18 @@
|
|
|
31
31
|
"cors": "^2.8.5",
|
|
32
32
|
"express": "^4.17.3",
|
|
33
33
|
"express-session": "^1.17.2",
|
|
34
|
+
"install": "^0.13.0",
|
|
34
35
|
"meta-sanitizer": "^2.1.4",
|
|
35
36
|
"nodemon": "^2.0.15",
|
|
36
|
-
"
|
|
37
|
+
"npm": "^10.9.0",
|
|
38
|
+
"pg": "^8.13.0",
|
|
37
39
|
"pg-hstore": "^2.3.4",
|
|
38
40
|
"sequelize": "^6.37.4",
|
|
39
|
-
"sequelize-cli": "^6.4.1",
|
|
40
41
|
"sucrase": "^3.20.3",
|
|
41
42
|
"typescript": "^4.6.2"
|
|
42
43
|
},
|
|
43
44
|
"devDependencies": {
|
|
44
|
-
"@types/node": "^17.0.21"
|
|
45
|
+
"@types/node": "^17.0.21",
|
|
46
|
+
"sequelize-cli": "^6.6.2"
|
|
45
47
|
}
|
|
46
48
|
}
|
package/spc_envfile.json
CHANGED
package/src/database/database.ts
CHANGED
package/src/logs/logs.ts
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { Request } from 'express';
|
|
4
|
+
import axios from 'axios';
|
|
5
|
+
export const BASE_LOG_PATH='./logs';
|
|
6
|
+
export enum LogSeverity{
|
|
7
|
+
danger='danger',
|
|
8
|
+
servere='severe',
|
|
9
|
+
moderate='moderate',
|
|
10
|
+
info='info',
|
|
11
|
+
}
|
|
12
|
+
export interface SaveLogOptions{
|
|
13
|
+
userId?:number;
|
|
14
|
+
data:string;
|
|
15
|
+
severity:LogSeverity;
|
|
16
|
+
addPath?:string;
|
|
17
|
+
filePrefix?:string;
|
|
18
|
+
penTestSuspcion?:boolean;
|
|
19
|
+
req?:Request;
|
|
20
|
+
ip?:string;
|
|
21
|
+
url?:string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
export function stringfyError(err:any):string{
|
|
26
|
+
const type=typeof(err);
|
|
27
|
+
if(type!=='object')
|
|
28
|
+
return err.toString();
|
|
29
|
+
let ret=stringfyObject(err,0);
|
|
30
|
+
return ret||"";
|
|
31
|
+
function stringfyObject(obj:any,level:number=0){
|
|
32
|
+
if(!obj)
|
|
33
|
+
return "";
|
|
34
|
+
if(typeof(obj)!=='object')
|
|
35
|
+
return obj.toString();
|
|
36
|
+
if(level==5)
|
|
37
|
+
return "Is Object level max 8";
|
|
38
|
+
let ret:any={};
|
|
39
|
+
for(let key of Object.keys(obj)){
|
|
40
|
+
let value=obj[key];
|
|
41
|
+
//@ts-ignore
|
|
42
|
+
ret[key]=typeof(value)=='object'?stringfyObject(value,level+1).replaceAll('\\',''):value?.toString();
|
|
43
|
+
}
|
|
44
|
+
return JSON.stringify(ret);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
export function getIpFromRequest(req:Request){
|
|
51
|
+
//@
|
|
52
|
+
let ips = (
|
|
53
|
+
req.headers['cf-connecting-ip'] ||
|
|
54
|
+
req.headers['x-real-ip'] ||
|
|
55
|
+
req.headers['x-forwarded-for'] ||
|
|
56
|
+
req.ip || ''
|
|
57
|
+
);
|
|
58
|
+
if(typeof(ips)=='string'){
|
|
59
|
+
ips=ips.split(',');
|
|
60
|
+
}
|
|
61
|
+
return ips[0].trim();
|
|
62
|
+
}
|
|
63
|
+
export async function saveInternalErrorLog(req:Request,error:any,options?:{penTestSuspcion?:boolean,severity?:LogSeverity}){
|
|
64
|
+
try{
|
|
65
|
+
const ip=getIpFromRequest(req);
|
|
66
|
+
const url=req.originalUrl;
|
|
67
|
+
//@ts-ignore
|
|
68
|
+
const userId=req.user?.id;
|
|
69
|
+
let errorString=stringfyError(error);
|
|
70
|
+
saveLog({
|
|
71
|
+
ip:ip,
|
|
72
|
+
url:url,
|
|
73
|
+
userId:userId,
|
|
74
|
+
data:errorString,
|
|
75
|
+
severity:options?.severity||LogSeverity.info,
|
|
76
|
+
penTestSuspcion:options?.penTestSuspcion,
|
|
77
|
+
});
|
|
78
|
+
}catch(e){
|
|
79
|
+
console.log("Error ON Save Log",e);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
export function saveLog(options:SaveLogOptions){
|
|
83
|
+
if(!fs.existsSync(BASE_LOG_PATH)){
|
|
84
|
+
fs.mkdirSync(BASE_LOG_PATH);
|
|
85
|
+
}
|
|
86
|
+
let basePath=BASE_LOG_PATH;
|
|
87
|
+
if(options.addPath){
|
|
88
|
+
basePath=path.join(basePath,options.addPath);
|
|
89
|
+
if(!fs.existsSync(basePath)){
|
|
90
|
+
fs.mkdirSync(basePath);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if(options.userId){
|
|
94
|
+
basePath=path.join(basePath,options.userId.toString());
|
|
95
|
+
}else{
|
|
96
|
+
basePath=path.join(basePath,"unlogged");
|
|
97
|
+
}
|
|
98
|
+
if(!fs.existsSync(basePath)){
|
|
99
|
+
fs.mkdirSync(basePath);
|
|
100
|
+
}
|
|
101
|
+
let fileName=path.join(basePath,`${options.filePrefix?options.filePrefix+'_':""}${getDateString(new Date())}.csv`);
|
|
102
|
+
let data="";
|
|
103
|
+
if(fs.existsSync(fileName)){
|
|
104
|
+
data=fs.readFileSync(fileName).toString()+"\n";
|
|
105
|
+
}
|
|
106
|
+
if(!data){
|
|
107
|
+
data='Data;Severidade;Usuário;Dados;IP;URL;Supeita de Ataque\n';
|
|
108
|
+
}
|
|
109
|
+
data+=`${new Date()};${options.severity};${options.userId||"Deslogado"};${options.data};${options.ip||"Não Informado"};${options.url||"Não Informado"};${options.penTestSuspcion?"SIM":"NÃO"}`;
|
|
110
|
+
fs.writeFileSync(fileName,data);
|
|
111
|
+
return {
|
|
112
|
+
fileName,
|
|
113
|
+
basePath,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
function getDateString(d:Date){
|
|
117
|
+
const year=d.getFullYear();
|
|
118
|
+
const month=zerof(d.getMonth()+1);
|
|
119
|
+
const day=zerof(d.getDate());
|
|
120
|
+
const hour=zerof(d.getHours());
|
|
121
|
+
return `${year}_${month}_${day}_${hour}`;
|
|
122
|
+
function zerof(n:number){
|
|
123
|
+
if(n>9)
|
|
124
|
+
return n.toString();
|
|
125
|
+
return `0${n}`;
|
|
126
|
+
}
|
|
127
|
+
}
|
package/dist/auth/auth.d.ts
DELETED
package/dist/auth/auth.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.logoutUser = exports.setUserLogged = exports.userIsLogged = void 0;
|
|
4
|
-
const secureget_1 = require("../sessions/secureget");
|
|
5
|
-
const config_1 = require("./config");
|
|
6
|
-
const server_1 = require("../server");
|
|
7
|
-
const server_2 = require("../server");
|
|
8
|
-
function userIsLogged(req) {
|
|
9
|
-
let user = (0, secureget_1.getSessionValue)(req, config_1.SESSION_LOGGED_DATA);
|
|
10
|
-
if (user)
|
|
11
|
-
return true;
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
exports.userIsLogged = userIsLogged;
|
|
15
|
-
function setUserLogged(req, email) {
|
|
16
|
-
(0, server_1.setSessionValue)(req, config_1.SESSION_LOGGED_DATA, email);
|
|
17
|
-
}
|
|
18
|
-
exports.setUserLogged = setUserLogged;
|
|
19
|
-
function logoutUser(req) {
|
|
20
|
-
(0, server_2.deleteSessionValue)(req, config_1.SESSION_LOGGED_DATA);
|
|
21
|
-
}
|
|
22
|
-
exports.logoutUser = logoutUser;
|
package/dist/auth/config.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const SESSION_LOGGED_DATA = "email";
|
package/dist/auth/config.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.dataBase = void 0;
|
|
7
|
-
//@ts-ignore
|
|
8
|
-
//@ts-nocheck
|
|
9
|
-
const sequelize_1 = require("sequelize");
|
|
10
|
-
const database_1 = __importDefault(require("./../settings/database/database"));
|
|
11
|
-
exports.dataBase = new sequelize_1.Sequelize(database_1.default);
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.User = void 0;
|
|
4
|
-
const sequelize_1 = require("sequelize");
|
|
5
|
-
const sequelize_2 = require("sequelize");
|
|
6
|
-
const database_1 = require("../database");
|
|
7
|
-
class User extends sequelize_1.Model {
|
|
8
|
-
}
|
|
9
|
-
exports.User = User;
|
|
10
|
-
User.init({
|
|
11
|
-
first_name: sequelize_2.DataTypes.STRING,
|
|
12
|
-
email: sequelize_2.DataTypes.STRING,
|
|
13
|
-
is_active: sequelize_2.DataTypes.BOOLEAN,
|
|
14
|
-
password_hash: sequelize_2.DataTypes.STRING,
|
|
15
|
-
last_action: sequelize_2.DataTypes.DATE,
|
|
16
|
-
}, {
|
|
17
|
-
sequelize: database_1.dataBase,
|
|
18
|
-
tableName: 'spc_users',
|
|
19
|
-
});
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WebSocketAuth = void 0;
|
|
4
|
-
const sequelize_1 = require("sequelize");
|
|
5
|
-
const sequelize_2 = require("sequelize");
|
|
6
|
-
const database_1 = require("../database");
|
|
7
|
-
class WebSocketAuth extends sequelize_1.Model {
|
|
8
|
-
}
|
|
9
|
-
exports.WebSocketAuth = WebSocketAuth;
|
|
10
|
-
WebSocketAuth.init({
|
|
11
|
-
token: sequelize_2.DataTypes.STRING,
|
|
12
|
-
expiration: sequelize_2.DataTypes.DATE,
|
|
13
|
-
user_id: sequelize_2.DataTypes.INTEGER,
|
|
14
|
-
is_active: sequelize_2.DataTypes.BOOLEAN,
|
|
15
|
-
auth_connection_token: sequelize_2.DataTypes.STRING,
|
|
16
|
-
}, {
|
|
17
|
-
sequelize: database_1.dataBase,
|
|
18
|
-
tableName: 'spc_wsauth'
|
|
19
|
-
});
|
package/dist/expressServer.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import express from "express";
|
|
3
|
-
import { Express } from "express";
|
|
4
|
-
import { Server } from "http";
|
|
5
|
-
export default class ExpressServer {
|
|
6
|
-
app: Express;
|
|
7
|
-
authUserBaseUrl: string;
|
|
8
|
-
registerUserBaseUrl: string;
|
|
9
|
-
usePort: number;
|
|
10
|
-
server?: Server;
|
|
11
|
-
wsAuthBaseUrl: string;
|
|
12
|
-
constructor();
|
|
13
|
-
listen(port?: any): void;
|
|
14
|
-
initModules(): void;
|
|
15
|
-
initUserAuthSystem(baseUrl?: string): void;
|
|
16
|
-
initUserRegisterSystem(baseUrl?: string): void;
|
|
17
|
-
initWSAuthSystem(wsBaseUrl?: string): void;
|
|
18
|
-
getApp(): express.Express;
|
|
19
|
-
getServer(): Server | undefined;
|
|
20
|
-
}
|
package/dist/expressServer.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const express_1 = __importDefault(require("express"));
|
|
7
|
-
const sessions_1 = require("./modules/sessions");
|
|
8
|
-
const postreader_1 = require("./modules/postreader");
|
|
9
|
-
const initcors_1 = require("./modules/initcors");
|
|
10
|
-
const env_1 = __importDefault(require("./settings/env"));
|
|
11
|
-
const userauth_1 = __importDefault(require("./routes/userauth"));
|
|
12
|
-
const wsauth_1 = require("./routes/wsauth");
|
|
13
|
-
const userresgister_1 = __importDefault(require("./routes/userresgister"));
|
|
14
|
-
class ExpressServer {
|
|
15
|
-
constructor() {
|
|
16
|
-
this.authUserBaseUrl = "";
|
|
17
|
-
this.wsAuthBaseUrl = "";
|
|
18
|
-
this.registerUserBaseUrl = "";
|
|
19
|
-
this.usePort = env_1.default.PORT;
|
|
20
|
-
this.app = (0, express_1.default)();
|
|
21
|
-
this.initModules();
|
|
22
|
-
}
|
|
23
|
-
listen(port = null) {
|
|
24
|
-
if (port != null)
|
|
25
|
-
this.usePort = parseInt(port);
|
|
26
|
-
this.server = this.app.listen(this.usePort);
|
|
27
|
-
}
|
|
28
|
-
initModules() {
|
|
29
|
-
(0, sessions_1.initSessions)(this.app);
|
|
30
|
-
(0, postreader_1.initPostReader)(this.app);
|
|
31
|
-
(0, initcors_1.initCors)(this.app);
|
|
32
|
-
}
|
|
33
|
-
initUserAuthSystem(baseUrl = '/user') {
|
|
34
|
-
this.authUserBaseUrl = baseUrl;
|
|
35
|
-
this.app.use(this.authUserBaseUrl, userauth_1.default);
|
|
36
|
-
}
|
|
37
|
-
initUserRegisterSystem(baseUrl = '/userregister') {
|
|
38
|
-
this.registerUserBaseUrl = baseUrl;
|
|
39
|
-
this.app.use(this.registerUserBaseUrl, userresgister_1.default);
|
|
40
|
-
}
|
|
41
|
-
initWSAuthSystem(wsBaseUrl = '/ws') {
|
|
42
|
-
this.wsAuthBaseUrl = wsBaseUrl;
|
|
43
|
-
this.app.use(this.wsAuthBaseUrl, wsauth_1.router);
|
|
44
|
-
}
|
|
45
|
-
getApp() {
|
|
46
|
-
return this.app;
|
|
47
|
-
}
|
|
48
|
-
getServer() {
|
|
49
|
-
return this.server;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
exports.default = ExpressServer;
|
package/dist/middlewares/auth.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.setUserDataMiddleware = void 0;
|
|
13
|
-
const server_1 = require("../server");
|
|
14
|
-
const server_2 = require("../server");
|
|
15
|
-
const server_3 = require("../server");
|
|
16
|
-
const response_1 = require("../utils/response");
|
|
17
|
-
function setUserDataMiddleware(req, res, next) {
|
|
18
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
-
if (!(0, server_1.userIsLogged)(req))
|
|
20
|
-
return res.status(401).send((0, server_2.JSONResponse)({}, "User Must Be Logged"));
|
|
21
|
-
try {
|
|
22
|
-
const dealerEmail = (0, server_3.getUserSessionData)(req);
|
|
23
|
-
const user = yield server_1.User.findOne({ where: { email: dealerEmail, is_active: true } });
|
|
24
|
-
if (!user)
|
|
25
|
-
throw "Unknown user";
|
|
26
|
-
req.user = user;
|
|
27
|
-
yield (0, server_1.updateUserLastAction)(user);
|
|
28
|
-
next();
|
|
29
|
-
}
|
|
30
|
-
catch (e) {
|
|
31
|
-
return (0, response_1.sendIError)(req, res, e);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
exports.setUserDataMiddleware = setUserDataMiddleware;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function checkAndFilterPostParams(req: any, res: any, next: any): void;
|
package/dist/middlewares/post.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function checkWSAuth(ws: any, msg: any): Promise<boolean>;
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.checkWSAuth = void 0;
|
|
16
|
-
const random_1 = require("../utils/string/random");
|
|
17
|
-
const wsauth_1 = require("../wsauth/wsauth");
|
|
18
|
-
const response_1 = require("../utils/response");
|
|
19
|
-
const server_1 = require("../server");
|
|
20
|
-
const meta_sanitizer_1 = __importDefault(require("meta-sanitizer"));
|
|
21
|
-
const DEBUG = true;
|
|
22
|
-
function checkWSAuth(ws, msg) {
|
|
23
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
try {
|
|
25
|
-
if (ws.userId && ws.connectionToken) {
|
|
26
|
-
if ((yield (0, wsauth_1.checkConnectionAuth)(ws.userId, ws.connectionToken)))
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
const message = JSON.parse(msg);
|
|
30
|
-
if (message.action === "Authenticate") {
|
|
31
|
-
const token = meta_sanitizer_1.default.justCharsAndNumbers(message.token, false);
|
|
32
|
-
const userId = parseInt(meta_sanitizer_1.default.justNumbers(message.userId, false));
|
|
33
|
-
const connectionToken = (0, random_1.randomString)(35);
|
|
34
|
-
if ((yield (0, server_1.authenticateWS)(userId, token, connectionToken))) {
|
|
35
|
-
ws.userId = userId;
|
|
36
|
-
ws.connectionToken = connectionToken;
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
return sendError(false, "Invalid Token or UserID");
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
return sendError(false, "Need auth", "'action'='Authenticate' and must have 'token' and 'userId'");
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
catch (e) {
|
|
48
|
-
return sendError(false, "Internal Error", "", e);
|
|
49
|
-
}
|
|
50
|
-
function sendError(isOk, message, errorMessage = "", data = {}) {
|
|
51
|
-
ws.send((0, response_1.WSResponse)(isOk, message, errorMessage, data));
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
exports.checkWSAuth = checkWSAuth;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function initCors(app: any): void;
|
package/dist/modules/initcors.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.initCors = void 0;
|
|
7
|
-
const cors_1 = __importDefault(require("cors"));
|
|
8
|
-
const env_1 = __importDefault(require("../settings/env"));
|
|
9
|
-
function initCors(app) {
|
|
10
|
-
if (env_1.default.ALLOW_CORS)
|
|
11
|
-
app.use((0, cors_1.default)());
|
|
12
|
-
}
|
|
13
|
-
exports.initCors = initCors;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function initPostReader(app: any): void;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.initPostReader = void 0;
|
|
7
|
-
const express_1 = __importDefault(require("express"));
|
|
8
|
-
function initPostReader(app) {
|
|
9
|
-
app.use(express_1.default.json());
|
|
10
|
-
app.use(express_1.default.urlencoded({ extended: true }));
|
|
11
|
-
}
|
|
12
|
-
exports.initPostReader = initPostReader;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function initSessions(app: any): void;
|
package/dist/modules/sessions.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.initSessions = void 0;
|
|
7
|
-
const express_session_1 = __importDefault(require("express-session"));
|
|
8
|
-
const env_1 = __importDefault(require("../settings/env"));
|
|
9
|
-
function initSessions(app) {
|
|
10
|
-
app.set('trust proxy', 1); // trust first proxy
|
|
11
|
-
app.use((0, express_session_1.default)({
|
|
12
|
-
secret: env_1.default.SESSION_SECRET,
|
|
13
|
-
resave: false,
|
|
14
|
-
saveUninitialized: true,
|
|
15
|
-
cookie: { secure: env_1.default.NODE_ENV == 'development' ? false : true,
|
|
16
|
-
httpOnly: true,
|
|
17
|
-
},
|
|
18
|
-
}));
|
|
19
|
-
}
|
|
20
|
-
exports.initSessions = initSessions;
|
package/dist/routes/auth.d.ts
DELETED
package/dist/routes/auth.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const express_1 = __importDefault(require("express"));
|
|
16
|
-
const secureset_1 = require("../sessions/secureset");
|
|
17
|
-
const config_1 = require("../auth/config");
|
|
18
|
-
const response_1 = require("../utils/response");
|
|
19
|
-
const auth_1 = require("../auth/auth");
|
|
20
|
-
const meta_sanitizer_1 = __importDefault(require("meta-sanitizer"));
|
|
21
|
-
const users_1 = require("../users/users");
|
|
22
|
-
var LoginErrorCode;
|
|
23
|
-
(function (LoginErrorCode) {
|
|
24
|
-
LoginErrorCode[LoginErrorCode["NoError"] = 0] = "NoError";
|
|
25
|
-
LoginErrorCode[LoginErrorCode["InvalidParams"] = 1] = "InvalidParams";
|
|
26
|
-
LoginErrorCode[LoginErrorCode["InvalidPassword"] = 2] = "InvalidPassword";
|
|
27
|
-
})(LoginErrorCode || (LoginErrorCode = {}));
|
|
28
|
-
const router = express_1.default.Router();
|
|
29
|
-
router.post('/logout', (req, res) => {
|
|
30
|
-
let is_ok = false;
|
|
31
|
-
if (auth_1.userIsLogged(req)) {
|
|
32
|
-
secureset_1.deleteSessionValue(req, config_1.SESSION_LOGGED_DATA);
|
|
33
|
-
is_ok = true;
|
|
34
|
-
}
|
|
35
|
-
res.send(response_1.JSONResponse(is_ok, 0, is_ok ? "" : "User Must be logged", {}));
|
|
36
|
-
});
|
|
37
|
-
router.post('/login', (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
38
|
-
let email = "";
|
|
39
|
-
let password = "";
|
|
40
|
-
try {
|
|
41
|
-
email = meta_sanitizer_1.default.sanitizeEmail(req.body.email);
|
|
42
|
-
password = meta_sanitizer_1.default.queryProtector(req.body.password);
|
|
43
|
-
}
|
|
44
|
-
catch (e) {
|
|
45
|
-
return res.send(response_1.JSONResponse(false, LoginErrorCode.InvalidParams, "Must have 'email' and 'password' params"));
|
|
46
|
-
}
|
|
47
|
-
if (password == "" || email == "")
|
|
48
|
-
return res.send(response_1.JSONResponse(false, LoginErrorCode.InvalidParams, "Must have 'email' and 'password' params"));
|
|
49
|
-
const checkPass = yield users_1.checkUserPassword(email, password);
|
|
50
|
-
if (checkPass) {
|
|
51
|
-
secureset_1.setSessionValue(req, config_1.SESSION_LOGGED_DATA, email);
|
|
52
|
-
return res.send(response_1.JSONResponse(true, LoginErrorCode.NoError, "Login Ok"));
|
|
53
|
-
}
|
|
54
|
-
return res.send(response_1.JSONResponse(false, LoginErrorCode.InvalidPassword, "Invalid Password"));
|
|
55
|
-
}));
|
|
56
|
-
exports.default = router;
|