aldehyde 0.2.457 → 0.2.458

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/aldehyde/sso-Login/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAO5D,UAAU,KAAK;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,KAAK,GAAI,OAAO,KAAK,sBAoC1B,CAAA;AAED,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/aldehyde/sso-Login/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAQ5D,UAAU,KAAK;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,KAAK,GAAI,OAAO,KAAK,sBA0D1B,CAAA;AAED,eAAe,KAAK,CAAC"}
@@ -13,6 +13,7 @@ import { Spin } from "antd";
13
13
  import HCserviceV3 from "../tmpl/hcservice-v3";
14
14
  import HCDataSource from "../tmpl/hc-data-source";
15
15
  import ProgramConfig from "../units";
16
+ import { getMenuConfig } from "../layout2/page";
16
17
  const Index = (props) => {
17
18
  const { serverKey } = props;
18
19
  const [loading, setLoading] = useState(true);
@@ -22,17 +23,26 @@ const Index = (props) => {
22
23
  const username = temParams.get("username");
23
24
  const ssoToken = temParams.get("ssoToken");
24
25
  const programCode = temParams.get("programCode");
25
- return { username, ssoToken, programCode };
26
+ const token = temParams.get("token");
27
+ const sourceId = temParams.get("sourceId");
28
+ return { username, ssoToken, programCode, token, sourceId };
26
29
  }, [search]);
27
- const login = () => __awaiter(void 0, void 0, void 0, function* () {
30
+ const ssoTokenLogin = () => __awaiter(void 0, void 0, void 0, function* () {
28
31
  setLoading(true);
29
- const { username, ssoToken, programCode } = params;
32
+ const { username, ssoToken, programCode, sourceId } = params;
30
33
  const res = yield HCserviceV3.ssoTokenLogin({ username, ssoToken }, programCode, serverKey);
31
34
  const { defaultStyleTheme } = (yield ProgramConfig.getThemeConfig()) || {};
32
35
  if (res.status === "success") {
33
36
  HCDataSource.clear();
34
- window.location.hash = `/${defaultStyleTheme || "v2"}/home`;
35
37
  ProgramConfig.setHydrocarbonToken(res.token);
38
+ if (sourceId) {
39
+ const temData = yield getMenuConfig(defaultStyleTheme || "v2");
40
+ const menu = ProgramConfig.findItemByIdIterative(temData.menu, sourceId);
41
+ window.location.hash = (menu === null || menu === void 0 ? void 0 : menu.url) || `/${defaultStyleTheme || "v2"}/home`;
42
+ }
43
+ else {
44
+ window.location.hash = `/${defaultStyleTheme || "v2"}/home`;
45
+ }
36
46
  }
37
47
  else if (res.status === "error") {
38
48
  const allThemes = ProgramConfig.getAllThemes();
@@ -40,9 +50,23 @@ const Index = (props) => {
40
50
  }
41
51
  setLoading(false);
42
52
  });
53
+ const tokenLogin = () => __awaiter(void 0, void 0, void 0, function* () {
54
+ const { token, sourceId } = params;
55
+ const { defaultStyleTheme } = (yield ProgramConfig.getThemeConfig()) || {};
56
+ HCDataSource.clear();
57
+ ProgramConfig.setHydrocarbonToken(token);
58
+ if (sourceId) {
59
+ const temData = yield getMenuConfig(defaultStyleTheme || "v2");
60
+ const menu = ProgramConfig.findItemByIdIterative(temData.menu, sourceId);
61
+ window.location.hash = (menu === null || menu === void 0 ? void 0 : menu.url) || `/${defaultStyleTheme || "v2"}/home`;
62
+ }
63
+ else {
64
+ window.location.hash = `/${defaultStyleTheme || "v2"}/home`;
65
+ }
66
+ });
43
67
  useEffect(() => {
44
68
  if (params) {
45
- login();
69
+ params.token ? tokenLogin() : ssoTokenLogin();
46
70
  }
47
71
  }, [params]);
48
72
  return React.createElement(Spin, { spinning: loading, fullscreen: true });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/aldehyde/sso-Login/index.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,aAAa,MAAM,UAAU,CAAC;AAMrC,MAAM,KAAK,GAAG,CAAC,KAAY,EAAE,EAAE;IAC3B,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC5B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,IAAI,CAAC,CAAC;IACtD,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QACxB,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACjD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IAC/C,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,KAAK,GAAG,GAAS,EAAE;QACrB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QACnD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAC5F,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAA,MAAM,aAAa,CAAC,cAAc,EAAE,KAAI,EAAE,CAAC;QACzE,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3B,YAAY,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,iBAAiB,IAAI,IAAI,OAAO,CAAC;YAC5D,aAAa,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC;YAC/C,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,SAAS,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QAChF,CAAC;QACD,UAAU,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAA,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;QACZ,CAAC;IACL,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,OAAO,oBAAC,IAAI,IAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,SAAG,CAAC;AAClD,CAAC,CAAA;AAED,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/aldehyde/sso-Login/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export function getUrl(): Promise<string>;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/aldehyde/sso-Login/service/index.js"],"names":[],"mappings":"AAQO,0CAON"}
@@ -0,0 +1,24 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { handleLogin } from "./login";
11
+ const Username = "";
12
+ const Password = "";
13
+ const SourceId = ""; // 菜单SourceId
14
+ const Path = "";
15
+ const ProgramCode = "";
16
+ export const getUrl = () => __awaiter(void 0, void 0, void 0, function* () {
17
+ const token = yield handleLogin({ path: Path, username: Username, password: Password, programCode: ProgramCode });
18
+ if (!token) {
19
+ return null;
20
+ }
21
+ const url = `${Path}/#/sso-token?token=${token}&sourceId=${SourceId}`;
22
+ return url;
23
+ });
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/aldehyde/sso-Login/service/index.js"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,aAAa;AAClC,MAAM,IAAI,GAAG,EAAE,CAAC;AAChB,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAS,EAAE;IAC7B,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;IAClH,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,IAAI,sBAAsB,KAAK,aAAa,QAAQ,EAAE,CAAC;IACtE,OAAO,GAAG,CAAC;AACf,CAAC,CAAA,CAAA"}
@@ -0,0 +1,2 @@
1
+ export function handleLogin(params: any): Promise<any>;
2
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../../../src/aldehyde/sso-Login/service/login.js"],"names":[],"mappings":"AAIO,uDAgBN"}
@@ -0,0 +1,87 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import dayjs from "dayjs";
11
+ import JSEncrypt from 'jsencrypt';
12
+ import superagent from "superagent";
13
+ export const handleLogin = (params) => __awaiter(void 0, void 0, void 0, function* () {
14
+ const { username, password, programCode, path } = params || {};
15
+ if (!username || !password || !programCode || !path) {
16
+ return null;
17
+ }
18
+ const pubkey = yield getPubkey(params);
19
+ if (!pubkey) {
20
+ return null;
21
+ }
22
+ const res = yield login({ loginData: { username, password }, pubkey, programCode, path });
23
+ if (res.status === "success") {
24
+ return res.token;
25
+ }
26
+ else {
27
+ console.log("error:", res.message);
28
+ return null;
29
+ }
30
+ });
31
+ const getPubkey = (params) => __awaiter(void 0, void 0, void 0, function* () {
32
+ const { programCode, path } = params || {};
33
+ if (!programCode) {
34
+ return null;
35
+ }
36
+ const res = yield request({ url: "/v3/auth/ras-pubkey", programCode, method: "GET", path });
37
+ return (res === null || res === void 0 ? void 0 : res.status) === "success" ? res.rasPubkey : null;
38
+ });
39
+ const rsaEncrypt = (word, keyStr) => {
40
+ const encrypt = new JSEncrypt();
41
+ encrypt.setPublicKey(keyStr);
42
+ return encrypt.encrypt(word);
43
+ };
44
+ const login = (params) => __awaiter(void 0, void 0, void 0, function* () {
45
+ const { loginData, pubkey, programCode, serverKey, path } = params;
46
+ let datetime = dayjs(new Date()).tz("Europe/London").format("YYYY-MM-DD HH:mm:ss");
47
+ let userInfo = rsaEncrypt(JSON.stringify(Object.assign(Object.assign({}, loginData), { datetime })), pubkey);
48
+ let res = yield request({ url: "/v3/auth/hctoken", serverKey, programCode, query: { userInfo }, method: "GET", path });
49
+ return { status: res.status, token: res.token };
50
+ });
51
+ const request = (params) => {
52
+ const { programCode, method, path, query, data, url } = params;
53
+ return new Promise((resolve, reject) => {
54
+ superagent(method || "POST", path + url)
55
+ .type("form")
56
+ .set("hydrocarbon-program-token", programCode)
57
+ .query(query || "")
58
+ .send(data)
59
+ .end((req, res) => {
60
+ if (!res) {
61
+ resolve({ message: "服务器连接失败" });
62
+ }
63
+ else {
64
+ if (res.status === 200) {
65
+ let result = res.body;
66
+ resolve(result);
67
+ }
68
+ else if ([201, 403].includes(res.status)) {
69
+ resolve(res);
70
+ }
71
+ else if (res.status === 405 || res.status === 406) {
72
+ resolve(Object.assign(Object.assign({}, res), { message: "权限不足" }));
73
+ }
74
+ else if (res.status === 404 || res.status === 504) {
75
+ resolve(Object.assign(Object.assign({}, res), { message: "没找到服务" }));
76
+ }
77
+ else if (res.status === 500) {
78
+ resolve(undefined);
79
+ }
80
+ else {
81
+ reject(res.body);
82
+ }
83
+ }
84
+ });
85
+ });
86
+ };
87
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../../src/aldehyde/sso-Login/service/login.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aldehyde",
3
- "version": "0.2.457",
3
+ "version": "0.2.458",
4
4
  "author": "cosmicparticle",
5
5
  "main": "lib/index.js",
6
6
  "module": "src/aldehyde/index.txs",
@@ -4,6 +4,7 @@ import { Spin } from "antd";
4
4
  import HCserviceV3 from "../tmpl/hcservice-v3";
5
5
  import HCDataSource from "../tmpl/hc-data-source";
6
6
  import ProgramConfig from "../units";
7
+ import { getMenuConfig } from "../layout2/page";
7
8
 
8
9
  interface Props {
9
10
  serverKey?: string;
@@ -19,18 +20,26 @@ const Index = (props: Props) => {
19
20
  const username = temParams.get("username");
20
21
  const ssoToken = temParams.get("ssoToken");
21
22
  const programCode = temParams.get("programCode");
22
- return { username, ssoToken, programCode };
23
+ const token = temParams.get("token");
24
+ const sourceId = temParams.get("sourceId");
25
+ return { username, ssoToken, programCode, token, sourceId };
23
26
  }, [search]);
24
27
 
25
- const login = async () => {
28
+ const ssoTokenLogin = async () => {
26
29
  setLoading(true);
27
- const { username, ssoToken, programCode } = params;
30
+ const { username, ssoToken, programCode, sourceId } = params;
28
31
  const res = await HCserviceV3.ssoTokenLogin({ username, ssoToken }, programCode, serverKey);
29
32
  const { defaultStyleTheme } = await ProgramConfig.getThemeConfig() || {};
30
33
  if (res.status === "success") {
31
34
  HCDataSource.clear();
32
- window.location.hash = `/${defaultStyleTheme || "v2"}/home`;
33
35
  ProgramConfig.setHydrocarbonToken(res.token);
36
+ if (sourceId) {
37
+ const temData = await getMenuConfig(defaultStyleTheme || "v2");
38
+ const menu = ProgramConfig.findItemByIdIterative(temData.menu, sourceId);
39
+ window.location.hash = menu?.url || `/${defaultStyleTheme || "v2"}/home`;
40
+ } else {
41
+ window.location.hash = `/${defaultStyleTheme || "v2"}/home`;
42
+ }
34
43
  } else if (res.status === "error") {
35
44
  const allThemes = ProgramConfig.getAllThemes();
36
45
  window.location.hash = `/${allThemes[defaultStyleTheme || "v2"].loginPath}`;
@@ -38,9 +47,23 @@ const Index = (props: Props) => {
38
47
  setLoading(false);
39
48
  };
40
49
 
50
+ const tokenLogin = async () => {
51
+ const { token, sourceId } = params;
52
+ const { defaultStyleTheme } = await ProgramConfig.getThemeConfig() || {};
53
+ HCDataSource.clear();
54
+ ProgramConfig.setHydrocarbonToken(token);
55
+ if (sourceId) {
56
+ const temData = await getMenuConfig(defaultStyleTheme || "v2");
57
+ const menu = ProgramConfig.findItemByIdIterative(temData.menu, sourceId);
58
+ window.location.hash = menu?.url || `/${defaultStyleTheme || "v2"}/home`;
59
+ } else {
60
+ window.location.hash = `/${defaultStyleTheme || "v2"}/home`;
61
+ }
62
+ }
63
+
41
64
  useEffect(() => {
42
65
  if (params) {
43
- login();
66
+ params.token ? tokenLogin() : ssoTokenLogin();
44
67
  }
45
68
  }, [params])
46
69
 
@@ -0,0 +1,16 @@
1
+ import { handleLogin } from "./login";
2
+
3
+ const Username = "";
4
+ const Password = "";
5
+ const SourceId = ""; // 菜单SourceId
6
+ const Path = "";
7
+ const ProgramCode = "";
8
+
9
+ export const getUrl = async () => {
10
+ const token = await handleLogin({ path: Path, username: Username, password: Password, programCode: ProgramCode });
11
+ if (!token) {
12
+ return null;
13
+ }
14
+ const url = `${Path}/#/sso-token?token=${token}&sourceId=${SourceId}`;
15
+ return url;
16
+ }
@@ -0,0 +1,75 @@
1
+ import dayjs from "dayjs";
2
+ import JSEncrypt from 'jsencrypt';
3
+ import superagent from "superagent";
4
+
5
+ export const handleLogin = async (params) => {
6
+ const { username, password, programCode, path } = params || {};
7
+ if (!username || !password || !programCode || !path) {
8
+ return null;
9
+ }
10
+ const pubkey = await getPubkey(params);
11
+ if (!pubkey) {
12
+ return null;
13
+ }
14
+ const res = await login({ loginData: { username, password }, pubkey, programCode, path });
15
+ if (res.status === "success") {
16
+ return res.token;
17
+ } else {
18
+ console.log("error:", res.message);
19
+ return null;
20
+ }
21
+ }
22
+
23
+ const getPubkey = async (params) => {
24
+ const { programCode, path } = params || {};
25
+ if (!programCode) {
26
+ return null;
27
+ }
28
+ const res = await request({ url: "/v3/auth/ras-pubkey", programCode, method: "GET", path });
29
+ return res?.status === "success" ? res.rasPubkey : null;
30
+ };
31
+
32
+ const rsaEncrypt = (word, keyStr) => {
33
+ const encrypt = new JSEncrypt();
34
+ encrypt.setPublicKey(keyStr);
35
+ return encrypt.encrypt(word);
36
+ }
37
+
38
+ const login = async (params) => {
39
+ const { loginData, pubkey, programCode, serverKey, path } = params;
40
+ let datetime = dayjs(new Date()).tz("Europe/London").format("YYYY-MM-DD HH:mm:ss");
41
+ let userInfo = rsaEncrypt(JSON.stringify({ ...loginData, datetime }), pubkey);
42
+ let res = await request({ url: "/v3/auth/hctoken", serverKey, programCode, query: { userInfo }, method: "GET", path });
43
+ return { status: res.status, token: res.token };
44
+ }
45
+
46
+ const request = (params) => {
47
+ const { programCode, method, path, query, data, url } = params;
48
+ return new Promise((resolve, reject) => {
49
+ superagent(method || "POST", path + url)
50
+ .type("form")
51
+ .set("hydrocarbon-program-token", programCode)
52
+ .query(query || "")
53
+ .send(data)
54
+ .end((req, res) => {
55
+ if (!res) {
56
+ resolve({ message: "服务器连接失败" });
57
+ } else {
58
+ if (res.status === 200) {
59
+ let result = res.body;
60
+ resolve(result);
61
+ } else if ([201, 403].includes(res.status)) {
62
+ resolve(res);
63
+ } else if (res.status === 405 || res.status === 406) {
64
+ resolve({ ...res, message: "权限不足" });
65
+ } else if (res.status === 404 || res.status === 504) {
66
+ resolve({ ...res, message: "没找到服务" });
67
+ } else if (res.status === 500) {
68
+ resolve(undefined);
69
+ } else {
70
+ reject(res.body);
71
+ }
72
+ }
73
+ });
74
+ });
75
+ }