@kwiz/node 1.0.25 → 1.0.26

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,3 +1,31 @@
1
1
  import { AuthContextType, ITenantInfo } from "@kwiz/common";
2
- /** client secret not supported by SharePoint, must use certificate */
2
+ /** Get app-only token. client secret not supported by SharePoint, must use certificate */
3
3
  export declare function GetMSALToken(tenantInfo: ITenantInfo, scope: string, auth: AuthContextType, clearCache?: boolean): Promise<string>;
4
+ export interface iUserTokenAccountInfo {
5
+ homeAccountId: string;
6
+ environment: string;
7
+ tenantId: string;
8
+ username: string;
9
+ localAccountId: string;
10
+ name?: string;
11
+ }
12
+ export interface iUserTokenRequestInfo {
13
+ scopes: string[];
14
+ /** a page in your app that will get the code in query after user logs in, call GetMSALUserToken with that code */
15
+ redirectUri: string;
16
+ /** pass a state to the login uri page to validate and/or restore the user's app state (page he came from?) */
17
+ state?: string;
18
+ /** a redirect handler in case we need to take the user to the login page */
19
+ redirect: (url: string) => void;
20
+ /** code you got from redirectUri */
21
+ code?: string;
22
+ /** if you kept a user account from previous GetMSALUserToken result - try to use it to get a silent token/refreshed token */
23
+ account?: iUserTokenAccountInfo;
24
+ }
25
+ /** Get user token.
26
+ * if code or account proivded will attempt to get a token, otherwise will redirect the user
27
+ * client secret not supported by SharePoint, must use certificate */
28
+ export declare function GetMSALUserToken(tenantInfo: ITenantInfo, auth: AuthContextType, info: iUserTokenRequestInfo, clearCache?: boolean): Promise<{
29
+ accessToken: string;
30
+ account: iUserTokenAccountInfo;
31
+ } | null>;
package/dist/auth/msal.js CHANGED
@@ -9,11 +9,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.GetMSALToken = void 0;
12
+ exports.GetMSALUserToken = exports.GetMSALToken = void 0;
13
13
  const msal_node_1 = require("@azure/msal-node");
14
14
  const common_1 = require("@kwiz/common");
15
15
  //find tenant id? https://login.microsoftonline.com/kwizcom.onmicrosoft.com/.well-known/openid-configuration
16
16
  //https://stackoverflow.com/questions/54771270/msal-ad-token-not-valid-with-sharepoint-online-csom
17
+ const logger = new common_1.CommonLogger("msal");
17
18
  var apps = {};
18
19
  function GetApp(tenantInfo, auth) {
19
20
  let key = `${tenantInfo.idOrName}|${auth.authenticationMode}`;
@@ -39,7 +40,7 @@ function GetApp(tenantInfo, auth) {
39
40
  }
40
41
  return apps[key];
41
42
  }
42
- /** client secret not supported by SharePoint, must use certificate */
43
+ /** Get app-only token. client secret not supported by SharePoint, must use certificate */
43
44
  function GetMSALToken(tenantInfo, scope, auth, clearCache) {
44
45
  return __awaiter(this, void 0, void 0, function* () {
45
46
  const app = GetApp(tenantInfo, auth);
@@ -52,4 +53,51 @@ function GetMSALToken(tenantInfo, scope, auth, clearCache) {
52
53
  });
53
54
  }
54
55
  exports.GetMSALToken = GetMSALToken;
56
+ /** Get user token.
57
+ * if code or account proivded will attempt to get a token, otherwise will redirect the user
58
+ * client secret not supported by SharePoint, must use certificate */
59
+ function GetMSALUserToken(tenantInfo, auth, info, clearCache) {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ const app = GetApp(tenantInfo, auth);
62
+ if (clearCache)
63
+ app.clearCache();
64
+ if (info.account) {
65
+ try {
66
+ const result = yield app.acquireTokenSilent({
67
+ account: info.account,
68
+ scopes: info.scopes,
69
+ redirectUri: info.redirectUri
70
+ });
71
+ return {
72
+ accessToken: result.accessToken,
73
+ account: result.account
74
+ };
75
+ }
76
+ catch (e) {
77
+ logger.error(e);
78
+ }
79
+ }
80
+ if (info.code) {
81
+ try {
82
+ const result = yield app.acquireTokenByCode({
83
+ code: info.code,
84
+ scopes: info.scopes,
85
+ redirectUri: info.redirectUri,
86
+ state: info.state
87
+ });
88
+ return {
89
+ accessToken: result.accessToken,
90
+ account: result.account
91
+ };
92
+ }
93
+ catch (e) {
94
+ logger.error(e);
95
+ }
96
+ }
97
+ const loginUrl = yield app.getAuthCodeUrl(info);
98
+ info.redirect(loginUrl);
99
+ return null;
100
+ });
101
+ }
102
+ exports.GetMSALUserToken = GetMSALUserToken;
55
103
  //# sourceMappingURL=msal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"msal.js","sourceRoot":"","sources":["../../src/auth/msal.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAAiE;AACjE,yCAAiF;AACjF,4GAA4G;AAC5G,kGAAkG;AAElG,IAAI,IAAI,GAAwD,EAAE,CAAC;AAEnE,SAAS,MAAM,CAAC,UAAuB,EAAE,IAAqB;IAC1D,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAC7D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACb,IAAI,CAAC,kBAAkB,KAAK,4BAAmB,CAAC,YAAY;YACxD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,yCAA6B,CAAC;gBAC5C,IAAI,EAAE;oBACF,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,SAAS,EAAE,UAAU,CAAC,YAAY;oBAClC,YAAY,EAAE,IAAI,CAAC,YAAY;iBAClC;aAEJ,CAAC;YACF,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,yCAA6B,CAAC;gBAC5C,IAAI,EAAE;oBACF,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,SAAS,EAAE,UAAU,CAAC,YAAY;oBAClC,iBAAiB,EAAE;wBACf,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;qBAC9B;iBACJ;aAEJ,CAAC,CAAC;IACX,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,sEAAsE;AACtE,SAAsB,YAAY,CAAC,UAAuB,EAAE,KAAa,EAAE,IAAqB,EAAE,UAAoB;;QAClH,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,UAAU;YACV,GAAG,CAAC,UAAU,EAAE,CAAC;QACrB,IAAI,KAAK,GAAG,MAAM,GAAG,CAAC,8BAA8B,CAAC;YACjD,MAAM,EAAE,CAAC,GAAG,KAAK,WAAW,CAAC;SAChC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,WAAW,CAAC;IAC7B,CAAC;CAAA;AARD,oCAQC"}
1
+ {"version":3,"file":"msal.js","sourceRoot":"","sources":["../../src/auth/msal.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kwiz/node",
3
- "version": "1.0.25",
3
+ "version": "1.0.26",
4
4
  "description": "KWIZ utilities and helpers for node applications",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -70,7 +70,7 @@
70
70
  "dependencies": {
71
71
  "@azure/data-tables": "^13.2.2",
72
72
  "@azure/msal-node": "^2.6.4",
73
- "@kwiz/common": "^1.0.164",
73
+ "@kwiz/common": "^1.0.173",
74
74
  "axios": "^1.6.7",
75
75
  "esbuild": "^0.19.12",
76
76
  "get-tsconfig": "^4.7.2",