@hivedev/hivesdk 1.0.24 → 1.0.25
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/hive-server.cjs +77 -5
- package/hive-server.js +76 -6
- package/package.json +1 -1
package/hive-server.cjs
CHANGED
|
@@ -34,7 +34,7 @@ var require_dist = __commonJS({
|
|
|
34
34
|
"node_modules/cookie/dist/index.js"(exports2) {
|
|
35
35
|
"use strict";
|
|
36
36
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
37
|
-
exports2.parse =
|
|
37
|
+
exports2.parse = parse3;
|
|
38
38
|
exports2.serialize = serialize2;
|
|
39
39
|
var cookieNameRegExp = /^[\u0021-\u003A\u003C\u003E-\u007E]+$/;
|
|
40
40
|
var cookieValueRegExp = /^[\u0021-\u003A\u003C-\u007E]*$/;
|
|
@@ -47,7 +47,7 @@ var require_dist = __commonJS({
|
|
|
47
47
|
C.prototype = /* @__PURE__ */ Object.create(null);
|
|
48
48
|
return C;
|
|
49
49
|
})();
|
|
50
|
-
function
|
|
50
|
+
function parse3(str, options) {
|
|
51
51
|
const obj = new NullObject();
|
|
52
52
|
const len = str.length;
|
|
53
53
|
if (len < 2)
|
|
@@ -198,6 +198,8 @@ __export(server_exports, {
|
|
|
198
198
|
getHostIp: () => getHostIp,
|
|
199
199
|
handleHiveRequests: () => handleHiveRequests,
|
|
200
200
|
initServer: () => initServer,
|
|
201
|
+
isLoggedIn: () => isLoggedIn,
|
|
202
|
+
isLoggedInWithPermission: () => isLoggedInWithPermission,
|
|
201
203
|
loadConfiguration: () => loadConfiguration,
|
|
202
204
|
promptPassword: () => promptPassword,
|
|
203
205
|
sendMail: () => sendMail,
|
|
@@ -646,7 +648,6 @@ async function handleLogin(request, response) {
|
|
|
646
648
|
const password = request.body.password;
|
|
647
649
|
const deviceId = request.headers["x-device-id"];
|
|
648
650
|
const loginRequestBody = { userId, password, serviceName: HiveServerGlobals_default.getServiceName() };
|
|
649
|
-
console.log(loginRequestBody);
|
|
650
651
|
const loginResponse = await fetch(
|
|
651
652
|
await getHiveUrl("/Login"),
|
|
652
653
|
{
|
|
@@ -830,6 +831,73 @@ async function handleLogout(request, response) {
|
|
|
830
831
|
}
|
|
831
832
|
}
|
|
832
833
|
|
|
834
|
+
// Server/Authentication/IsLoggedInWithPermission.js
|
|
835
|
+
async function isLoggedInWithPermission(request, response, bSendResponse = false) {
|
|
836
|
+
const cookies = request.cookies;
|
|
837
|
+
const deviceId = request.headers["x-device-id"] || "";
|
|
838
|
+
const headers = request.headers;
|
|
839
|
+
if (!request.body.permissionName) {
|
|
840
|
+
if (bSendResponse) {
|
|
841
|
+
response.writeHead(200, { "Content-Type": "application/json" });
|
|
842
|
+
response.end(JSON.stringify(false));
|
|
843
|
+
}
|
|
844
|
+
return false;
|
|
845
|
+
}
|
|
846
|
+
if (!deviceId) {
|
|
847
|
+
if (bSendResponse) {
|
|
848
|
+
response.writeHead(200, { "Content-Type": "application/json" });
|
|
849
|
+
response.end(JSON.stringify(false));
|
|
850
|
+
}
|
|
851
|
+
return false;
|
|
852
|
+
}
|
|
853
|
+
if (!cookies && !headers["x-session-token"]) {
|
|
854
|
+
if (bSendResponse) {
|
|
855
|
+
response.writeHead(200, { "Content-Type": "application/json" });
|
|
856
|
+
response.end(JSON.stringify(false));
|
|
857
|
+
}
|
|
858
|
+
return false;
|
|
859
|
+
}
|
|
860
|
+
const sessionToken = cookies.sessionToken || headers["x-session-token"];
|
|
861
|
+
const isUsingApp = !cookies["usesCookies"];
|
|
862
|
+
const isLoggedInResponse = await fetch(
|
|
863
|
+
await getHiveUrl("/IsLoggedInWithPermission"),
|
|
864
|
+
{
|
|
865
|
+
method: "POST",
|
|
866
|
+
headers: { "Content-Type": "application/json", "x-device-id": deviceId, "x-session-token": sessionToken || "" },
|
|
867
|
+
body: JSON.stringify({ sessionToken, serviceName: HiveServerGlobals_default.getServiceName(), permissionName: request.body.permissionName || "", isUsingApp })
|
|
868
|
+
}
|
|
869
|
+
);
|
|
870
|
+
if (isLoggedInResponse.status == 200) {
|
|
871
|
+
const isLoggedInResponseJson = await isLoggedInResponse.json();
|
|
872
|
+
if (isLoggedInResponseJson.isLoggedIn && isLoggedInResponseJson.hasPermission) {
|
|
873
|
+
const sessionJson = isLoggedInResponseJson.session;
|
|
874
|
+
if (isLoggedInResponseJson.refresh) {
|
|
875
|
+
const newSessionToken = sessionJson.sessionToken;
|
|
876
|
+
response.cookie(
|
|
877
|
+
"sessionToken",
|
|
878
|
+
newSessionToken,
|
|
879
|
+
{
|
|
880
|
+
httpOnly: true,
|
|
881
|
+
sameSite: "strict",
|
|
882
|
+
maxAge: 7 * 24 * 60 * 60 * 1e3
|
|
883
|
+
}
|
|
884
|
+
);
|
|
885
|
+
}
|
|
886
|
+
}
|
|
887
|
+
if (bSendResponse) {
|
|
888
|
+
response.writeHead(200, { "Content-Type": "application/json" });
|
|
889
|
+
response.end(JSON.stringify(isLoggedInResponseJson.isLoggedIn && isLoggedInResponseJson.hasPermission));
|
|
890
|
+
}
|
|
891
|
+
return isLoggedInResponseJson.isLoggedIn && isLoggedInResponseJson.hasPermission;
|
|
892
|
+
} else {
|
|
893
|
+
if (bSendResponse) {
|
|
894
|
+
response.writeHead(200, { "Content-Type": "application/json" });
|
|
895
|
+
response.end(JSON.stringify(false));
|
|
896
|
+
}
|
|
897
|
+
return false;
|
|
898
|
+
}
|
|
899
|
+
}
|
|
900
|
+
|
|
833
901
|
// Server/HandleHiveRequests.js
|
|
834
902
|
async function handleHiveRequests(request, response, next) {
|
|
835
903
|
const { url, method } = request;
|
|
@@ -847,12 +915,14 @@ async function handleHiveRequests(request, response, next) {
|
|
|
847
915
|
await parseRequestQuery(request);
|
|
848
916
|
await getServiceUrls(request, response);
|
|
849
917
|
return;
|
|
850
|
-
} else if (url === "/IsLoggedIn" && method === "
|
|
918
|
+
} else if (url === "/IsLoggedIn" && method === "POST") {
|
|
851
919
|
await parseRequestCookies(request);
|
|
852
920
|
await isLoggedIn(request, response, true);
|
|
853
921
|
return;
|
|
854
|
-
} else if (url === "/IsLoggedInWithPermission" && method === "
|
|
922
|
+
} else if (url === "/IsLoggedInWithPermission" && method === "POST") {
|
|
855
923
|
await parseRequestCookies(request);
|
|
924
|
+
await parseRequestBody(request);
|
|
925
|
+
await isLoggedInWithPermission(request, response, true);
|
|
856
926
|
return;
|
|
857
927
|
} else if (url === "/hive-client.js") {
|
|
858
928
|
const filePath = import_path5.default.join(process.cwd(), "node_modules/@hivedev/hivesdk/hive-client.js");
|
|
@@ -885,6 +955,8 @@ async function handleHiveRequests(request, response, next) {
|
|
|
885
955
|
getHostIp,
|
|
886
956
|
handleHiveRequests,
|
|
887
957
|
initServer,
|
|
958
|
+
isLoggedIn,
|
|
959
|
+
isLoggedInWithPermission,
|
|
888
960
|
loadConfiguration,
|
|
889
961
|
promptPassword,
|
|
890
962
|
sendMail,
|
package/hive-server.js
CHANGED
|
@@ -29,7 +29,7 @@ var require_dist = __commonJS({
|
|
|
29
29
|
"node_modules/cookie/dist/index.js"(exports) {
|
|
30
30
|
"use strict";
|
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
-
exports.parse =
|
|
32
|
+
exports.parse = parse3;
|
|
33
33
|
exports.serialize = serialize2;
|
|
34
34
|
var cookieNameRegExp = /^[\u0021-\u003A\u003C\u003E-\u007E]+$/;
|
|
35
35
|
var cookieValueRegExp = /^[\u0021-\u003A\u003C-\u007E]*$/;
|
|
@@ -42,7 +42,7 @@ var require_dist = __commonJS({
|
|
|
42
42
|
C.prototype = /* @__PURE__ */ Object.create(null);
|
|
43
43
|
return C;
|
|
44
44
|
})();
|
|
45
|
-
function
|
|
45
|
+
function parse3(str, options) {
|
|
46
46
|
const obj = new NullObject();
|
|
47
47
|
const len = str.length;
|
|
48
48
|
if (len < 2)
|
|
@@ -624,7 +624,6 @@ async function handleLogin(request, response) {
|
|
|
624
624
|
const password = request.body.password;
|
|
625
625
|
const deviceId = request.headers["x-device-id"];
|
|
626
626
|
const loginRequestBody = { userId, password, serviceName: HiveServerGlobals_default.getServiceName() };
|
|
627
|
-
console.log(loginRequestBody);
|
|
628
627
|
const loginResponse = await fetch(
|
|
629
628
|
await getHiveUrl("/Login"),
|
|
630
629
|
{
|
|
@@ -696,7 +695,7 @@ async function parseRequestQuery(request) {
|
|
|
696
695
|
}
|
|
697
696
|
|
|
698
697
|
// Server/HandleHiveRequests.js
|
|
699
|
-
import path5 from "path";
|
|
698
|
+
import path5, { parse as parse2 } from "path";
|
|
700
699
|
import fs6 from "fs";
|
|
701
700
|
|
|
702
701
|
// Server/Utility/ParseRequestCookies.js
|
|
@@ -808,6 +807,73 @@ async function handleLogout(request, response) {
|
|
|
808
807
|
}
|
|
809
808
|
}
|
|
810
809
|
|
|
810
|
+
// Server/Authentication/IsLoggedInWithPermission.js
|
|
811
|
+
async function isLoggedInWithPermission(request, response, bSendResponse = false) {
|
|
812
|
+
const cookies = request.cookies;
|
|
813
|
+
const deviceId = request.headers["x-device-id"] || "";
|
|
814
|
+
const headers = request.headers;
|
|
815
|
+
if (!request.body.permissionName) {
|
|
816
|
+
if (bSendResponse) {
|
|
817
|
+
response.writeHead(200, { "Content-Type": "application/json" });
|
|
818
|
+
response.end(JSON.stringify(false));
|
|
819
|
+
}
|
|
820
|
+
return false;
|
|
821
|
+
}
|
|
822
|
+
if (!deviceId) {
|
|
823
|
+
if (bSendResponse) {
|
|
824
|
+
response.writeHead(200, { "Content-Type": "application/json" });
|
|
825
|
+
response.end(JSON.stringify(false));
|
|
826
|
+
}
|
|
827
|
+
return false;
|
|
828
|
+
}
|
|
829
|
+
if (!cookies && !headers["x-session-token"]) {
|
|
830
|
+
if (bSendResponse) {
|
|
831
|
+
response.writeHead(200, { "Content-Type": "application/json" });
|
|
832
|
+
response.end(JSON.stringify(false));
|
|
833
|
+
}
|
|
834
|
+
return false;
|
|
835
|
+
}
|
|
836
|
+
const sessionToken = cookies.sessionToken || headers["x-session-token"];
|
|
837
|
+
const isUsingApp = !cookies["usesCookies"];
|
|
838
|
+
const isLoggedInResponse = await fetch(
|
|
839
|
+
await getHiveUrl("/IsLoggedInWithPermission"),
|
|
840
|
+
{
|
|
841
|
+
method: "POST",
|
|
842
|
+
headers: { "Content-Type": "application/json", "x-device-id": deviceId, "x-session-token": sessionToken || "" },
|
|
843
|
+
body: JSON.stringify({ sessionToken, serviceName: HiveServerGlobals_default.getServiceName(), permissionName: request.body.permissionName || "", isUsingApp })
|
|
844
|
+
}
|
|
845
|
+
);
|
|
846
|
+
if (isLoggedInResponse.status == 200) {
|
|
847
|
+
const isLoggedInResponseJson = await isLoggedInResponse.json();
|
|
848
|
+
if (isLoggedInResponseJson.isLoggedIn && isLoggedInResponseJson.hasPermission) {
|
|
849
|
+
const sessionJson = isLoggedInResponseJson.session;
|
|
850
|
+
if (isLoggedInResponseJson.refresh) {
|
|
851
|
+
const newSessionToken = sessionJson.sessionToken;
|
|
852
|
+
response.cookie(
|
|
853
|
+
"sessionToken",
|
|
854
|
+
newSessionToken,
|
|
855
|
+
{
|
|
856
|
+
httpOnly: true,
|
|
857
|
+
sameSite: "strict",
|
|
858
|
+
maxAge: 7 * 24 * 60 * 60 * 1e3
|
|
859
|
+
}
|
|
860
|
+
);
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
if (bSendResponse) {
|
|
864
|
+
response.writeHead(200, { "Content-Type": "application/json" });
|
|
865
|
+
response.end(JSON.stringify(isLoggedInResponseJson.isLoggedIn && isLoggedInResponseJson.hasPermission));
|
|
866
|
+
}
|
|
867
|
+
return isLoggedInResponseJson.isLoggedIn && isLoggedInResponseJson.hasPermission;
|
|
868
|
+
} else {
|
|
869
|
+
if (bSendResponse) {
|
|
870
|
+
response.writeHead(200, { "Content-Type": "application/json" });
|
|
871
|
+
response.end(JSON.stringify(false));
|
|
872
|
+
}
|
|
873
|
+
return false;
|
|
874
|
+
}
|
|
875
|
+
}
|
|
876
|
+
|
|
811
877
|
// Server/HandleHiveRequests.js
|
|
812
878
|
async function handleHiveRequests(request, response, next) {
|
|
813
879
|
const { url, method } = request;
|
|
@@ -825,12 +891,14 @@ async function handleHiveRequests(request, response, next) {
|
|
|
825
891
|
await parseRequestQuery(request);
|
|
826
892
|
await getServiceUrls(request, response);
|
|
827
893
|
return;
|
|
828
|
-
} else if (url === "/IsLoggedIn" && method === "
|
|
894
|
+
} else if (url === "/IsLoggedIn" && method === "POST") {
|
|
829
895
|
await parseRequestCookies(request);
|
|
830
896
|
await isLoggedIn(request, response, true);
|
|
831
897
|
return;
|
|
832
|
-
} else if (url === "/IsLoggedInWithPermission" && method === "
|
|
898
|
+
} else if (url === "/IsLoggedInWithPermission" && method === "POST") {
|
|
833
899
|
await parseRequestCookies(request);
|
|
900
|
+
await parseRequestBody(request);
|
|
901
|
+
await isLoggedInWithPermission(request, response, true);
|
|
834
902
|
return;
|
|
835
903
|
} else if (url === "/hive-client.js") {
|
|
836
904
|
const filePath = path5.join(process.cwd(), "node_modules/@hivedev/hivesdk/hive-client.js");
|
|
@@ -862,6 +930,8 @@ export {
|
|
|
862
930
|
getHostIp,
|
|
863
931
|
handleHiveRequests,
|
|
864
932
|
initServer,
|
|
933
|
+
isLoggedIn,
|
|
934
|
+
isLoggedInWithPermission,
|
|
865
935
|
loadConfiguration,
|
|
866
936
|
promptPassword,
|
|
867
937
|
sendMail,
|