mbkauthe 1.0.21 → 1.0.22

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.
@@ -0,0 +1,71 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+
6
+ # APIsec addresses the critical need to secure APIs before they reach production.
7
+ # APIsec provides the industry’s only automated and continuous API testing platform that uncovers security vulnerabilities and logic flaws in APIs.
8
+ # Clients rely on APIsec to evaluate every update and release, ensuring that no APIs go to production with vulnerabilities.
9
+
10
+ # How to Get Started with APIsec.ai
11
+ # 1. Schedule a demo at https://www.apisec.ai/request-a-demo .
12
+ #
13
+ # 2. Register your account at https://cloud.apisec.ai/#/signup .
14
+ #
15
+ # 3. Register your API . See the video (https://www.youtube.com/watch?v=MK3Xo9Dbvac) to get up and running with APIsec quickly.
16
+ #
17
+ # 4. Get GitHub Actions scan attributes from APIsec Project -> Configurations -> Integrations -> CI-CD -> GitHub Actions
18
+ #
19
+ # apisec-run-scan
20
+ #
21
+ # This action triggers the on-demand scans for projects registered in APIsec.
22
+ # If your GitHub account allows code scanning alerts, you can then upload the sarif file generated by this action to show the scan findings.
23
+ # Else you can view the scan results from the project home page in APIsec Platform.
24
+ # The link to view the scan results is also displayed on the console on successful completion of action.
25
+
26
+ # This is a starter workflow to help you get started with APIsec-Scan Actions
27
+
28
+ name: APIsec
29
+
30
+ # Controls when the workflow will run
31
+ on:
32
+ # Triggers the workflow on push or pull request events but only for the "main" branch
33
+ # Customize trigger events based on your DevSecOps processes.
34
+ push:
35
+ branches: [ "main" ]
36
+ pull_request:
37
+ branches: [ "main" ]
38
+ schedule:
39
+ - cron: '44 15 * * 0'
40
+
41
+ # Allows you to run this workflow manually from the Actions tab
42
+ workflow_dispatch:
43
+
44
+
45
+ permissions:
46
+ contents: read
47
+
48
+ jobs:
49
+
50
+ Trigger_APIsec_scan:
51
+ permissions:
52
+ security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
53
+ actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
54
+ runs-on: ubuntu-latest
55
+
56
+ steps:
57
+ - name: APIsec scan
58
+ uses: apisec-inc/apisec-run-scan@025432089674a28ba8fb55f8ab06c10215e772ea
59
+ with:
60
+ # The APIsec username with which the scans will be executed
61
+ apisec-username: ${{ secrets.apisec_username }}
62
+ # The Password of the APIsec user with which the scans will be executed
63
+ apisec-password: ${{ secrets.apisec_password}}
64
+ # The name of the project for security scan
65
+ apisec-project: "VAmPI"
66
+ # The name of the sarif format result file The file is written only if this property is provided.
67
+ sarif-result-file: "apisec-results.sarif"
68
+ - name: Import results
69
+ uses: github/codeql-action/upload-sarif@v3
70
+ with:
71
+ sarif_file: ./apisec-results.sarif
package/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import express from "express"; // Add this line
1
2
  import router from "./lib/main.js";
2
3
 
3
4
  import dotenv from "dotenv";
package/lib/main.js CHANGED
@@ -7,6 +7,7 @@ import { dblogin } from "./pool.js";
7
7
  import { authenticate } from "./validateSessionAndRole.js";
8
8
  import fetch from 'node-fetch';
9
9
  import cookieParser from "cookie-parser";
10
+ import bcrypt from 'bcrypt';
10
11
 
11
12
  import { createRequire } from "module";
12
13
  const require = createRequire(import.meta.url);
@@ -195,9 +196,24 @@ router.post("/mbkauthe/api/login", async (req, res) => {
195
196
 
196
197
  const user = userResult.rows[0];
197
198
 
198
- if (user.Password !== password) {
199
- console.log(`Incorrect password for username: ${username}`);
200
- return res.status(401).json({ success: false, message: "Incorrect Username Or Password" });
199
+ if (mbkautheVar.EncryptedPassword === "true") {
200
+ try {
201
+ const result = await bcrypt.compare(password, user.Password);
202
+ if (!result) {
203
+ console.log("Incorrect password.");
204
+ return res.status(401).json({ success: false, errorCode: 603, message: "Incorrect Username Or Password." });
205
+ }
206
+ console.log("Password matches!");
207
+ } catch (err) {
208
+ console.error("Error comparing password:", err);
209
+ return res.status(500).json({ success: false, errorCode: 605, message: `Internal Server Error` });
210
+ }
211
+ } else {
212
+ // Check if the password matches
213
+ if (user.Password !== password) {
214
+ console.log(`Incorrect password for username: ${username}`);
215
+ return res.status(401).json({ success: false, errorCode: 603, message: "Incorrect Username Or Password" });
216
+ }
201
217
  }
202
218
 
203
219
  if (!user.Active) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mbkauthe",
3
- "version": "1.0.21",
3
+ "version": "1.0.22",
4
4
  "description": "MBKTechStudio's reusable authentication system for Node.js applications.",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -26,6 +26,7 @@
26
26
  },
27
27
  "homepage": "https://github.com/MIbnEKhalid/mbkauthe#readme",
28
28
  "dependencies": {
29
+ "bcrypt": "^5.1.1",
29
30
  "connect-pg-simple": "^10.0.0",
30
31
  "cookie-parser": "^1.4.7",
31
32
  "dotenv": "^16.4.7",
@@ -34,4 +35,4 @@
34
35
  "node-fetch": "^3.3.2",
35
36
  "pg": "^8.14.1"
36
37
  }
37
- }
38
+ }