serverpreconfigured 1.0.8 → 1.1.0
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/dist/middlewares/auth.js +2 -2
- package/dist/middlewares/post.d.ts +1 -0
- package/dist/middlewares/post.js +6 -0
- package/dist/middlewares/wsauth.d.ts +1 -0
- package/dist/middlewares/wsauth.js +53 -0
- package/dist/routes/wsauth.js +1 -1
- package/dist/server.d.ts +1 -0
- package/dist/server.js +1 -0
- package/dist/users/users.d.ts +4 -4
- package/dist/utils/response.d.ts +1 -0
- package/dist/utils/response.js +10 -1
- package/package.json +2 -2
- package/src/middlewares/auth.ts +2 -2
- package/src/middlewares/post.ts +4 -0
- package/src/middlewares/wsauth.ts +36 -0
- package/src/routes/wsauth.ts +1 -1
- package/src/server.ts +1 -0
- package/src/users/users.ts +5 -5
- package/src/utils/response.ts +9 -1
package/dist/middlewares/auth.js
CHANGED
|
@@ -22,7 +22,7 @@ const DEBUG = env_1.default.NODE_ENV === 'development' ? true : false;
|
|
|
22
22
|
function setUserDataMiddleware(req, res, next) {
|
|
23
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
24
|
if (!(0, server_1.userIsLogged)(req))
|
|
25
|
-
return res.send((0, server_2.JSONResponse)(false, undefined, "User Must Be Logged"));
|
|
25
|
+
return res.status(401).send((0, server_2.JSONResponse)(false, undefined, "User Must Be Logged"));
|
|
26
26
|
try {
|
|
27
27
|
const dealerEmail = (0, server_3.getUserSessionData)(req);
|
|
28
28
|
const dealerId = yield (0, server_4.getUserIdByUserEmail)(dealerEmail);
|
|
@@ -33,7 +33,7 @@ function setUserDataMiddleware(req, res, next) {
|
|
|
33
33
|
let more = null;
|
|
34
34
|
if (DEBUG)
|
|
35
35
|
more = e;
|
|
36
|
-
return res.send((0, server_2.JSONResponse)(false, undefined, "Get dealer data error", more));
|
|
36
|
+
return res.status(500).send((0, server_2.JSONResponse)(false, undefined, "Get dealer data error", more));
|
|
37
37
|
}
|
|
38
38
|
});
|
|
39
39
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function checkAndFilterPostParams(req: any, res: any, next: any): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1 +1,54 @@
|
|
|
1
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 random_1 = require("../utils/string/random");
|
|
16
|
+
const wsauth_1 = require("../wsauth/wsauth");
|
|
17
|
+
const response_1 = require("../utils/response");
|
|
18
|
+
const server_1 = require("../server");
|
|
19
|
+
const meta_sanitizer_1 = __importDefault(require("meta-sanitizer"));
|
|
20
|
+
const DEBUG = true;
|
|
21
|
+
function checkWSAuth(ws, msg) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
try {
|
|
24
|
+
if (ws.userId && ws.connectionToken) {
|
|
25
|
+
if ((yield (0, wsauth_1.checkConnectionAuth)(ws.userId, ws.connectionToken)))
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
const message = JSON.parse(msg);
|
|
29
|
+
if (message.action === "Authenticate") {
|
|
30
|
+
const token = meta_sanitizer_1.default.justCharsAndNumbers(message.token, false);
|
|
31
|
+
const userId = parseInt(meta_sanitizer_1.default.justNumbers(message.userId, false));
|
|
32
|
+
const connectionToken = (0, random_1.randomString)(35);
|
|
33
|
+
if ((yield (0, server_1.authenticateWS)(userId, token, connectionToken))) {
|
|
34
|
+
ws.userId = userId;
|
|
35
|
+
ws.connectionToken = connectionToken;
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
return sendError(false, "Invalid Token or UserID");
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return sendError(false, "Need auth", "'action'='Authenticate' and must have 'token' and 'userId'");
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
return sendError(false, "Internal Error", "", e);
|
|
48
|
+
}
|
|
49
|
+
function sendError(isOk, message, errorMessage = "", data = {}) {
|
|
50
|
+
ws.send((0, response_1.WSResponse)(isOk, message, errorMessage, data));
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
package/dist/routes/wsauth.js
CHANGED
|
@@ -40,6 +40,6 @@ exports.router.post('/gettoken', auth_1.setUserDataMiddleware, (req, res) => __a
|
|
|
40
40
|
let more = null;
|
|
41
41
|
if (DEBUG)
|
|
42
42
|
more = e;
|
|
43
|
-
return res.send((0, response_1.JSONResponse)(false, GenerateTokenError.InternalError, "I-Error", more));
|
|
43
|
+
return res.status(500).send((0, response_1.JSONResponse)(false, GenerateTokenError.InternalError, "I-Error", more));
|
|
44
44
|
}
|
|
45
45
|
}));
|
package/dist/server.d.ts
CHANGED
package/dist/server.js
CHANGED
|
@@ -36,4 +36,5 @@ var response_1 = require("./utils/response");
|
|
|
36
36
|
Object.defineProperty(exports, "JSONResponse", { enumerable: true, get: function () { return response_1.JSONResponse; } });
|
|
37
37
|
const expressServer_1 = __importDefault(require("./expressServer"));
|
|
38
38
|
__exportStar(require("./middlewares/auth"), exports);
|
|
39
|
+
__exportStar(require("./middlewares/wsauth"), exports);
|
|
39
40
|
exports.default = expressServer_1.default;
|
package/dist/users/users.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { UserCreateInterface } from "./types";
|
|
2
2
|
export declare function getUserSessionData(req: any): string;
|
|
3
|
-
export declare function getUserById(id: Number): Promise<
|
|
4
|
-
export declare function getUserByEmail(email: string): Promise<
|
|
3
|
+
export declare function getUserById(id: Number): Promise<any>;
|
|
4
|
+
export declare function getUserByEmail(email: string): Promise<any>;
|
|
5
5
|
export declare function getUserIdByUserEmail(email: string): Promise<number>;
|
|
6
|
-
export declare function deleteUserById(id: Number): Promise<
|
|
6
|
+
export declare function deleteUserById(id: Number): Promise<any>;
|
|
7
7
|
export declare function isUserExist(email: string): Promise<boolean>;
|
|
8
|
-
export declare function createUser(data: UserCreateInterface): Promise<
|
|
8
|
+
export declare function createUser(data: UserCreateInterface): Promise<any>;
|
|
9
9
|
export declare function checkUserPassword(email: string, password_string: string): Promise<boolean>;
|
package/dist/utils/response.d.ts
CHANGED
package/dist/utils/response.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.JSONResponse = void 0;
|
|
3
|
+
exports.WSResponse = exports.JSONResponse = void 0;
|
|
4
4
|
function JSONResponse(is_ok, error_code = 0, error_message = '', data = {}) {
|
|
5
5
|
const ret_data = {
|
|
6
6
|
is_ok: is_ok,
|
|
@@ -11,3 +11,12 @@ function JSONResponse(is_ok, error_code = 0, error_message = '', data = {}) {
|
|
|
11
11
|
return JSON.stringify(ret_data);
|
|
12
12
|
}
|
|
13
13
|
exports.JSONResponse = JSONResponse;
|
|
14
|
+
function WSResponse(isOK, message = '', errorMessage = "", data = {}) {
|
|
15
|
+
return JSON.stringify({
|
|
16
|
+
is_ok: isOK,
|
|
17
|
+
message: message,
|
|
18
|
+
error_message: errorMessage,
|
|
19
|
+
data: data
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
exports.WSResponse = WSResponse;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "serverpreconfigured",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "\"Pre-configured server with authentication system and database integration\"",
|
|
5
5
|
"main": "dist/server.js",
|
|
6
6
|
"keywords": ["server","pre configured","database","authentication"],
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"cors": "^2.8.5",
|
|
22
22
|
"express": "^4.17.3",
|
|
23
23
|
"express-session": "^1.17.2",
|
|
24
|
-
"meta-sanitizer": "^2.1.
|
|
24
|
+
"meta-sanitizer": "^2.1.4",
|
|
25
25
|
"nodemon": "^2.0.15",
|
|
26
26
|
"pg": "^8.7.3",
|
|
27
27
|
"pg-hstore": "^2.3.4",
|
package/src/middlewares/auth.ts
CHANGED
|
@@ -6,7 +6,7 @@ import ENV from "../settings/env";
|
|
|
6
6
|
const DEBUG=ENV.NODE_ENV==='development'?true:false;
|
|
7
7
|
export async function setUserDataMiddleware(req:any,res:any,next:any){
|
|
8
8
|
if(!userIsLogged(req))
|
|
9
|
-
return res.send(JSONResponse(false,undefined,"User Must Be Logged"));
|
|
9
|
+
return res.status(401).send(JSONResponse(false,undefined,"User Must Be Logged"));
|
|
10
10
|
try{
|
|
11
11
|
const dealerEmail=getUserSessionData(req);
|
|
12
12
|
const dealerId=await getUserIdByUserEmail(dealerEmail);
|
|
@@ -16,6 +16,6 @@ export async function setUserDataMiddleware(req:any,res:any,next:any){
|
|
|
16
16
|
let more=null;
|
|
17
17
|
if(DEBUG)
|
|
18
18
|
more=e;
|
|
19
|
-
return res.send(JSONResponse(false,undefined,"Get dealer data error",more));
|
|
19
|
+
return res.status(500).send(JSONResponse(false,undefined,"Get dealer data error",more));
|
|
20
20
|
}
|
|
21
21
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { randomString } from "../utils/string/random";
|
|
2
|
+
import { checkConnectionAuth } from "../wsauth/wsauth";
|
|
3
|
+
import { WSResponse } from "../utils/response";
|
|
4
|
+
import { authenticateWS } from "../server";
|
|
5
|
+
import meta_sanitizer from "meta-sanitizer";
|
|
6
|
+
const DEBUG=true;
|
|
7
|
+
async function checkWSAuth(ws:any,msg:any):Promise<boolean>{
|
|
8
|
+
try{
|
|
9
|
+
if(ws.userId && ws.connectionToken){
|
|
10
|
+
if((await checkConnectionAuth(ws.userId,ws.connectionToken)))
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
const message=JSON.parse(msg);
|
|
14
|
+
if(message.action==="Authenticate"){
|
|
15
|
+
const token=meta_sanitizer.justCharsAndNumbers(message.token,false);
|
|
16
|
+
const userId=parseInt(meta_sanitizer.justNumbers(message.userId,false));
|
|
17
|
+
const connectionToken=randomString(35);
|
|
18
|
+
if((await authenticateWS(userId,token,connectionToken))){
|
|
19
|
+
ws.userId=userId;
|
|
20
|
+
ws.connectionToken=connectionToken;
|
|
21
|
+
return true;
|
|
22
|
+
}else{
|
|
23
|
+
return sendError(false,"Invalid Token or UserID");
|
|
24
|
+
}
|
|
25
|
+
}else{
|
|
26
|
+
return sendError(false,"Need auth","'action'='Authenticate' and must have 'token' and 'userId'");
|
|
27
|
+
}
|
|
28
|
+
}catch(e){
|
|
29
|
+
return sendError(false,"Internal Error","",e);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function sendError(isOk:boolean,message:string,errorMessage:string="",data:any={}){
|
|
33
|
+
ws.send(WSResponse(isOk,message,errorMessage,data));
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
package/src/routes/wsauth.ts
CHANGED
|
@@ -22,6 +22,6 @@ router.post('/gettoken',setUserDataMiddleware,async (req:any,res:any)=>{
|
|
|
22
22
|
let more=null;
|
|
23
23
|
if(DEBUG)
|
|
24
24
|
more=e;
|
|
25
|
-
return res.send(JSONResponse(false,GenerateTokenError.InternalError,"I-Error",more));
|
|
25
|
+
return res.status(500).send(JSONResponse(false,GenerateTokenError.InternalError,"I-Error",more));
|
|
26
26
|
}
|
|
27
27
|
});
|
package/src/server.ts
CHANGED
package/src/users/users.ts
CHANGED
|
@@ -9,12 +9,12 @@ User.init(dataBase);
|
|
|
9
9
|
export function getUserSessionData(req:any):string{
|
|
10
10
|
return getSessionValue(req,SESSION_LOGGED_DATA);
|
|
11
11
|
}
|
|
12
|
-
export async function getUserById(id:Number){
|
|
12
|
+
export async function getUserById(id:Number):Promise<any>{
|
|
13
13
|
let result=await User.findOne({where:{id:id.toString()}});
|
|
14
14
|
return (result);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
export async function getUserByEmail(email:string){
|
|
17
|
+
export async function getUserByEmail(email:string):Promise<any>{
|
|
18
18
|
let result=await User.findOne({where:{email:email}});
|
|
19
19
|
return (result);
|
|
20
20
|
}
|
|
@@ -29,11 +29,11 @@ export async function getUserIdByUserEmail(email:string):Promise<number>{
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
export async function deleteUserById(id:Number){
|
|
32
|
+
export async function deleteUserById(id:Number):Promise<any>{
|
|
33
33
|
let result=await User.destroy({where:{id:id.toString()}});
|
|
34
34
|
return result;
|
|
35
35
|
}
|
|
36
|
-
export async function isUserExist(email:string)
|
|
36
|
+
export async function isUserExist(email:string):Promise<boolean>{
|
|
37
37
|
try{
|
|
38
38
|
let user=await getUserByEmail(email);
|
|
39
39
|
return Boolean(user);
|
|
@@ -42,7 +42,7 @@ export async function isUserExist(email:string) {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
export async function createUser(data:UserCreateInterface){
|
|
45
|
+
export async function createUser(data:UserCreateInterface):Promise<any>{
|
|
46
46
|
let user_exist=false;
|
|
47
47
|
try{
|
|
48
48
|
user_exist=await isUserExist(data.email);
|
package/src/utils/response.ts
CHANGED
|
@@ -6,4 +6,12 @@ export function JSONResponse(is_ok:boolean,error_code:number=0,error_message:str
|
|
|
6
6
|
data:data,
|
|
7
7
|
};
|
|
8
8
|
return JSON.stringify(ret_data);
|
|
9
|
-
}
|
|
9
|
+
}
|
|
10
|
+
export function WSResponse(isOK:boolean,message:string='',errorMessage:string="",data:any={}):string{
|
|
11
|
+
return JSON.stringify({
|
|
12
|
+
is_ok:isOK,
|
|
13
|
+
message:message,
|
|
14
|
+
error_message:errorMessage,
|
|
15
|
+
data:data
|
|
16
|
+
});
|
|
17
|
+
}
|