@kwiz/common 1.0.140 → 1.0.141
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.
|
@@ -82,16 +82,176 @@ function _getSPFxClientAuthTokenFromCache(spfxTokenType = auth_1.SPFxAuthTokenTy
|
|
|
82
82
|
}
|
|
83
83
|
/** Acquire an authorization token for a Outlook, Graph, or SharePoint the same way SPFx clients do */
|
|
84
84
|
async function GetSPFxClientAuthToken(siteUrl, spfxTokenType = auth_1.SPFxAuthTokenType.Graph) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
let cachedToken = _getSPFxClientAuthTokenFromCache(spfxTokenType);
|
|
86
|
+
if (!(0, typecheckers_1.isNullOrEmptyString)(cachedToken)) {
|
|
87
|
+
return cachedToken;
|
|
88
|
+
}
|
|
89
|
+
if (spfxTokenType === auth_1.SPFxAuthTokenType.Graph) {
|
|
90
|
+
let resource = "https://graph.microsoft.com";
|
|
91
|
+
try {
|
|
92
|
+
let cachedToken;
|
|
93
|
+
for (let key in localStorage) {
|
|
94
|
+
if (key.startsWith(`Identity.OAuth.${_spPageContextInfo.systemUserKey}`)
|
|
95
|
+
&& key.indexOf(resource) !== -1) {
|
|
96
|
+
cachedToken = JSON.parse(localStorage.getItem(key));
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (!(0, typecheckers_1.isNullOrUndefined)(cachedToken)) {
|
|
101
|
+
return _parseAndCacheGetSPFxClientAuthTokenResult({
|
|
102
|
+
access_token: cachedToken.value,
|
|
103
|
+
expires_on: cachedToken.expiration.toString(),
|
|
104
|
+
resource: resource,
|
|
105
|
+
scope: null,
|
|
106
|
+
token_type: "Bearer"
|
|
107
|
+
}, spfxTokenType);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
let _spComponentLoader = window["_spComponentLoader"];
|
|
114
|
+
let manifests = _spComponentLoader.getManifests();
|
|
115
|
+
let manifest = (0, exports_index_1.firstOrNull)(manifests, (manifest) => {
|
|
116
|
+
return manifest.alias === "@microsoft/sp-http-base";
|
|
117
|
+
});
|
|
118
|
+
let module = await _spComponentLoader.loadComponentById(manifest.id);
|
|
119
|
+
let factory = new module.AadTokenProviderFactory();
|
|
120
|
+
let provider = await factory.getTokenProvider();
|
|
121
|
+
let token = await provider.getToken(resource, true);
|
|
122
|
+
if (!(0, typecheckers_1.isNullOrEmptyString)(token)) {
|
|
123
|
+
return _parseAndCacheGetSPFxClientAuthTokenResult({
|
|
124
|
+
access_token: token,
|
|
125
|
+
expires_on: null,
|
|
126
|
+
resource: resource,
|
|
127
|
+
scope: null,
|
|
128
|
+
token_type: "Bearer"
|
|
129
|
+
}, spfxTokenType);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
}
|
|
134
|
+
try {
|
|
135
|
+
let bufferToString = (buffer) => {
|
|
136
|
+
let result = Array.from(buffer, (c) => { return String.fromCodePoint(c); }).join("");
|
|
137
|
+
return window.btoa(result);
|
|
138
|
+
};
|
|
139
|
+
let ni = new Uint32Array(1);
|
|
140
|
+
let ci = () => {
|
|
141
|
+
let b = window.crypto.getRandomValues(ni);
|
|
142
|
+
return b[0];
|
|
143
|
+
};
|
|
144
|
+
let generateNonce = () => {
|
|
145
|
+
let ti = "0123456789abcdef";
|
|
146
|
+
const e = Date.now(), t = 1024 * ci() + (1023 & ci()), n = new Uint8Array(16), a = Math.trunc(t / 2 ** 30), i = t & 2 ** 30 - 1, r = ci();
|
|
147
|
+
n[0] = e / 2 ** 40,
|
|
148
|
+
n[1] = e / 2 ** 32,
|
|
149
|
+
n[2] = e / 2 ** 24,
|
|
150
|
+
n[3] = e / 65536,
|
|
151
|
+
n[4] = e / 256,
|
|
152
|
+
n[5] = e,
|
|
153
|
+
n[6] = 112 | a >>> 8,
|
|
154
|
+
n[7] = a,
|
|
155
|
+
n[8] = 128 | i >>> 24,
|
|
156
|
+
n[9] = i >>> 16,
|
|
157
|
+
n[10] = i >>> 8,
|
|
158
|
+
n[11] = i,
|
|
159
|
+
n[12] = r >>> 24,
|
|
160
|
+
n[13] = r >>> 16,
|
|
161
|
+
n[14] = r >>> 8,
|
|
162
|
+
n[15] = r;
|
|
163
|
+
let o = "";
|
|
164
|
+
for (let e = 0; e < n.length; e++)
|
|
165
|
+
o += ti.charAt(n[e] >>> 4),
|
|
166
|
+
o += ti.charAt(15 & n[e]),
|
|
167
|
+
3 !== e && 5 !== e && 7 !== e && 9 !== e || (o += "-");
|
|
168
|
+
return o;
|
|
169
|
+
};
|
|
170
|
+
let requestId = (0, exports_index_1.getUniqueId)();
|
|
171
|
+
let stateBuffer = new TextEncoder().encode(JSON.stringify({
|
|
172
|
+
id: (0, exports_index_1.getUniqueId)(),
|
|
173
|
+
meta: {
|
|
174
|
+
interactionType: "silent"
|
|
175
|
+
}
|
|
176
|
+
}));
|
|
177
|
+
let state = bufferToString(stateBuffer);
|
|
178
|
+
let redirectUri = `https://${window.location.host}/_forms/spfxsinglesignon.aspx`;
|
|
179
|
+
let sid = _spPageContextInfo["aadSessionId"];
|
|
180
|
+
let codeVerifierBuffer = window.crypto.getRandomValues(new Uint8Array(32));
|
|
181
|
+
let codeVerifier = bufferToString(codeVerifierBuffer).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
182
|
+
let codeChallengeBuffer = await window.crypto.subtle.digest("SHA-256", new TextEncoder().encode(codeVerifier));
|
|
183
|
+
let codeChallenge = bufferToString(new Uint8Array(codeChallengeBuffer)).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
184
|
+
let nonce = generateNonce();
|
|
185
|
+
let url = `${_spPageContextInfo["aadInstanceUrl"]}/${_spPageContextInfo.aadTenantId}/oauth2/v2.0/authorize?`;
|
|
186
|
+
url += `client_id=08e18876-6177-487e-b8b5-cf950c1e598c`;
|
|
187
|
+
url += `&scope=${encodeURIComponent("https://graph.microsoft.com/.default openid profile offline_access")}`;
|
|
188
|
+
url += `&redirect_uri=${encodeURIComponent(redirectUri)}`;
|
|
189
|
+
url += `&client-request-id=${encodeURIComponent(requestId)}`;
|
|
190
|
+
url += `&response_mode=fragment`;
|
|
191
|
+
url += `&response_type=code`;
|
|
192
|
+
url += `&code_challenge=${codeChallenge}&code_challenge_method=S256&prompt=none`;
|
|
193
|
+
url += `&sid=${encodeURIComponent(sid)}&nonce=${nonce}`;
|
|
194
|
+
url += `&state=${encodeURIComponent(state)}`;
|
|
195
|
+
let getCodeFromIframe = async () => {
|
|
196
|
+
return new Promise((resolve, reject) => {
|
|
197
|
+
try {
|
|
198
|
+
let iframe = document.createElement("iframe");
|
|
199
|
+
iframe.style.display = "none";
|
|
200
|
+
iframe.src = url;
|
|
201
|
+
iframe.onload = () => {
|
|
202
|
+
window.setTimeout(() => {
|
|
203
|
+
let params = new URLSearchParams(iframe.contentWindow.location.hash.replace("#", "?"));
|
|
204
|
+
let pCode = params.get("code");
|
|
205
|
+
let pState = params.get("state");
|
|
206
|
+
let pSid = params.get("session_state");
|
|
207
|
+
if (!(0, typecheckers_1.isNullOrEmptyString)(pCode) && pState === state && pSid === sid) {
|
|
208
|
+
resolve(pCode);
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
reject();
|
|
212
|
+
}
|
|
213
|
+
document.removeChild(iframe);
|
|
214
|
+
}, 100);
|
|
215
|
+
};
|
|
216
|
+
document.body.appendChild(iframe);
|
|
217
|
+
}
|
|
218
|
+
catch {
|
|
219
|
+
reject();
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
};
|
|
223
|
+
let authCode = await getCodeFromIframe();
|
|
224
|
+
if (!(0, typecheckers_1.isNullOrEmptyString)(authCode)) {
|
|
225
|
+
let url = `${_spPageContextInfo["aadInstanceUrl"]}/${_spPageContextInfo.aadTenantId}/oauth2/v2.0/token?`;
|
|
226
|
+
url += `client-request-id=${encodeURIComponent(requestId)}`;
|
|
227
|
+
let fd = new FormData();
|
|
228
|
+
fd.append("client_id", "08e18876-6177-487e-b8b5-cf950c1e598c");
|
|
229
|
+
fd.append("scope", "https://graph.microsoft.com/.default openid profile offline_access");
|
|
230
|
+
fd.append("redirect_uri", redirectUri);
|
|
231
|
+
fd.append("code", authCode);
|
|
232
|
+
fd.append("grant_type", "authorization_code");
|
|
233
|
+
fd.append("code_verifier", codeVerifier);
|
|
234
|
+
let response = await fetch(url, {
|
|
235
|
+
method: "POST",
|
|
236
|
+
body: fd
|
|
237
|
+
});
|
|
238
|
+
if (response.ok) {
|
|
239
|
+
let authToken = await response.json();
|
|
240
|
+
return _parseAndCacheGetSPFxClientAuthTokenResult(authToken, spfxTokenType);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
catch {
|
|
89
245
|
}
|
|
90
|
-
let { url, body, options } = _getGetSPFxClientAuthTokenParams(siteUrl, spfxTokenType);
|
|
91
|
-
let result = await (0, rest_1.GetJson)(url, body, options);
|
|
92
|
-
return _parseAndCacheGetSPFxClientAuthTokenResult(result, spfxTokenType);
|
|
93
246
|
}
|
|
94
|
-
|
|
247
|
+
else {
|
|
248
|
+
try {
|
|
249
|
+
let { url, body, options } = _getGetSPFxClientAuthTokenParams(siteUrl, spfxTokenType);
|
|
250
|
+
let result = await (0, rest_1.GetJson)(url, body, options);
|
|
251
|
+
return _parseAndCacheGetSPFxClientAuthTokenResult(result, spfxTokenType);
|
|
252
|
+
}
|
|
253
|
+
catch {
|
|
254
|
+
}
|
|
95
255
|
}
|
|
96
256
|
return null;
|
|
97
257
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/utils/auth/common.ts"],"names":[],"mappings":";;;AAAA,uDAA+E;AAC/E,6DAA8F;AAC9F,2CAAoE;AACpE,kCAA+C;AAC/C,sDAA2D;AAE3D,SAAgB,sBAAsB,CAAC,KAAa;IAChD,OAAO,SAAS,KAAK,EAAE,CAAC;AAC5B,CAAC;AAFD,wDAEC;AACD,SAAgB,eAAe,CAAC,KAAa;IACzC,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAC7D,CAAC;AAFD,0CAEC;AACD,SAAgB,gBAAgB,CAAC,QAAgB;IAC7C,OAAO,WAAW,QAAQ,EAAE,CAAC;AACjC,CAAC;AAFD,4CAEC;AAED,SAAS,gCAAgC,CAAC,OAAe,EAAE,gBAAmC,wBAAiB,CAAC,KAAK;IACjH,IAAI,UAAU,GAAG,GAAG,IAAA,uBAAc,EAAC,OAAO,CAAC,yBAAyB,CAAC;IACrE,qEAAqE;IACrE,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,QAAQ,aAAa,EAAE,CAAC;QACpB,KAAK,wBAAiB,CAAC,OAAO;YAC1B,QAAQ,GAAG,sCAAsC,CAAC;YAClD,MAAM;QACV,KAAK,wBAAiB,CAAC,UAAU,CAAC;QAClC,KAAK,wBAAiB,CAAC,MAAM;YACzB,UAAU,GAAG,IAAI,CAAC;YAClB,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;YACtC,IAAI,aAAa,KAAK,wBAAiB,CAAC,MAAM,EAAE,CAAC;gBAC7C,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;gBAClB,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,MAAM;QACV;YACI,QAAQ,GAAG,6BAA6B,CAAC;IACjD,CAAC;IAED,IAAI,IAAI,GAAG;QACP,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KAC5C,CAAC;IAEF,IAAI,MAAM,GAIN;QACA,GAAG,EAAE,UAAU;QACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC1B,OAAO,EAAE;YACL,UAAU,EAAE,KAAK;YACjB,sBAAsB;YACtB,gEAAgE;YAChE,mBAAmB,EAAE,IAAI;YACzB,OAAO,EAAE;gBACL,QAAQ,EAAE,yCAAyC;gBACnD,cAAc,EAAE,iCAAiC;gBACjD,eAAe,EAAE,KAAK;aACzB;SACJ;KACJ,CAAC;IAEF,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,0CAA0C,CAAC,MAAqB,EAAE,gBAAmC,wBAAiB,CAAC,KAAK;IACjI,IAAI,CAAC,IAAA,gCAAiB,EAAC,MAAM,CAAC,IAAI,CAAC,IAAA,kCAAmB,EAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1E,IAAI,UAAU,GAAG,IAAA,uBAAQ,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;YACpC;gBACI,OAAO,EAAE,EAAE;aACd,CAAC;QAEN,IAAA,4BAAY,EAAC,gBAAgB,aAAa,IAAI,kBAAkB,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAE3G,OAAO,MAAM,CAAC,YAAY,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,gCAAgC,CAAC,gBAAmC,wBAAiB,CAAC,KAAK;IAChG,IAAI,WAAW,GAAG,IAAA,4BAAY,EAAS,gBAAgB,aAAa,IAAI,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC;IACpG,IAAI,CAAC,IAAA,kCAAmB,EAAC,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,WAAW,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,sGAAsG;AAC/F,KAAK,UAAU,sBAAsB,CAAC,OAAe,EAAE,gBAAmC,wBAAiB,CAAC,KAAK;IACpH,IAAI,CAAC;QACD,IAAI,WAAW,GAAG,gCAAgC,CAAC,aAAa,CAAC,CAAC;QAClE,IAAI,CAAC,IAAA,kCAAmB,EAAC,WAAW,CAAC,EAAE,CAAC;YACpC,OAAO,WAAW,CAAC;QACvB,CAAC;QACD,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gCAAgC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACtF,IAAI,MAAM,GAAG,MAAM,IAAA,cAAO,EAAgB,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9D,OAAO,0CAA0C,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;IACT,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAZD,wDAYC;AAED,sGAAsG;AACtG,SAAgB,0BAA0B,CAAC,OAAe,EAAE,gBAAmC,wBAAiB,CAAC,KAAK;IAClH,IAAI,CAAC;QACD,IAAI,WAAW,GAAG,gCAAgC,CAAC,aAAa,CAAC,CAAC;QAClE,IAAI,CAAC,IAAA,kCAAmB,EAAC,WAAW,CAAC,EAAE,CAAC;YACpC,OAAO,WAAW,CAAC;QACvB,CAAC;QACD,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gCAAgC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACtF,IAAI,QAAQ,GAAG,IAAA,kBAAW,EAAgB,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9D,OAAO,0CAA0C,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;IACT,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAZD,gEAYC"}
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/utils/auth/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getCacheItem, setCacheItem } from "../../exports-index";
|
|
1
|
+
import { firstOrNull, getCacheItem, getUniqueId, setCacheItem } from "../../exports-index";
|
|
2
2
|
import { isNullOrEmptyString, isNullOrUndefined, isNumber } from "../../helpers/typecheckers";
|
|
3
3
|
import { SPFxAuthTokenType } from "../../types/auth";
|
|
4
4
|
import { GetJson, GetJsonSync } from "../rest";
|
|
@@ -76,16 +76,176 @@ function _getSPFxClientAuthTokenFromCache(spfxTokenType = SPFxAuthTokenType.Grap
|
|
|
76
76
|
}
|
|
77
77
|
/** Acquire an authorization token for a Outlook, Graph, or SharePoint the same way SPFx clients do */
|
|
78
78
|
export async function GetSPFxClientAuthToken(siteUrl, spfxTokenType = SPFxAuthTokenType.Graph) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
let cachedToken = _getSPFxClientAuthTokenFromCache(spfxTokenType);
|
|
80
|
+
if (!isNullOrEmptyString(cachedToken)) {
|
|
81
|
+
return cachedToken;
|
|
82
|
+
}
|
|
83
|
+
if (spfxTokenType === SPFxAuthTokenType.Graph) {
|
|
84
|
+
let resource = "https://graph.microsoft.com";
|
|
85
|
+
try {
|
|
86
|
+
let cachedToken;
|
|
87
|
+
for (let key in localStorage) {
|
|
88
|
+
if (key.startsWith(`Identity.OAuth.${_spPageContextInfo.systemUserKey}`)
|
|
89
|
+
&& key.indexOf(resource) !== -1) {
|
|
90
|
+
cachedToken = JSON.parse(localStorage.getItem(key));
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (!isNullOrUndefined(cachedToken)) {
|
|
95
|
+
return _parseAndCacheGetSPFxClientAuthTokenResult({
|
|
96
|
+
access_token: cachedToken.value,
|
|
97
|
+
expires_on: cachedToken.expiration.toString(),
|
|
98
|
+
resource: resource,
|
|
99
|
+
scope: null,
|
|
100
|
+
token_type: "Bearer"
|
|
101
|
+
}, spfxTokenType);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
}
|
|
106
|
+
try {
|
|
107
|
+
let _spComponentLoader = window["_spComponentLoader"];
|
|
108
|
+
let manifests = _spComponentLoader.getManifests();
|
|
109
|
+
let manifest = firstOrNull(manifests, (manifest) => {
|
|
110
|
+
return manifest.alias === "@microsoft/sp-http-base";
|
|
111
|
+
});
|
|
112
|
+
let module = await _spComponentLoader.loadComponentById(manifest.id);
|
|
113
|
+
let factory = new module.AadTokenProviderFactory();
|
|
114
|
+
let provider = await factory.getTokenProvider();
|
|
115
|
+
let token = await provider.getToken(resource, true);
|
|
116
|
+
if (!isNullOrEmptyString(token)) {
|
|
117
|
+
return _parseAndCacheGetSPFxClientAuthTokenResult({
|
|
118
|
+
access_token: token,
|
|
119
|
+
expires_on: null,
|
|
120
|
+
resource: resource,
|
|
121
|
+
scope: null,
|
|
122
|
+
token_type: "Bearer"
|
|
123
|
+
}, spfxTokenType);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
let bufferToString = (buffer) => {
|
|
130
|
+
let result = Array.from(buffer, (c) => { return String.fromCodePoint(c); }).join("");
|
|
131
|
+
return window.btoa(result);
|
|
132
|
+
};
|
|
133
|
+
let ni = new Uint32Array(1);
|
|
134
|
+
let ci = () => {
|
|
135
|
+
let b = window.crypto.getRandomValues(ni);
|
|
136
|
+
return b[0];
|
|
137
|
+
};
|
|
138
|
+
let generateNonce = () => {
|
|
139
|
+
let ti = "0123456789abcdef";
|
|
140
|
+
const e = Date.now(), t = 1024 * ci() + (1023 & ci()), n = new Uint8Array(16), a = Math.trunc(t / 2 ** 30), i = t & 2 ** 30 - 1, r = ci();
|
|
141
|
+
n[0] = e / 2 ** 40,
|
|
142
|
+
n[1] = e / 2 ** 32,
|
|
143
|
+
n[2] = e / 2 ** 24,
|
|
144
|
+
n[3] = e / 65536,
|
|
145
|
+
n[4] = e / 256,
|
|
146
|
+
n[5] = e,
|
|
147
|
+
n[6] = 112 | a >>> 8,
|
|
148
|
+
n[7] = a,
|
|
149
|
+
n[8] = 128 | i >>> 24,
|
|
150
|
+
n[9] = i >>> 16,
|
|
151
|
+
n[10] = i >>> 8,
|
|
152
|
+
n[11] = i,
|
|
153
|
+
n[12] = r >>> 24,
|
|
154
|
+
n[13] = r >>> 16,
|
|
155
|
+
n[14] = r >>> 8,
|
|
156
|
+
n[15] = r;
|
|
157
|
+
let o = "";
|
|
158
|
+
for (let e = 0; e < n.length; e++)
|
|
159
|
+
o += ti.charAt(n[e] >>> 4),
|
|
160
|
+
o += ti.charAt(15 & n[e]),
|
|
161
|
+
3 !== e && 5 !== e && 7 !== e && 9 !== e || (o += "-");
|
|
162
|
+
return o;
|
|
163
|
+
};
|
|
164
|
+
let requestId = getUniqueId();
|
|
165
|
+
let stateBuffer = new TextEncoder().encode(JSON.stringify({
|
|
166
|
+
id: getUniqueId(),
|
|
167
|
+
meta: {
|
|
168
|
+
interactionType: "silent"
|
|
169
|
+
}
|
|
170
|
+
}));
|
|
171
|
+
let state = bufferToString(stateBuffer);
|
|
172
|
+
let redirectUri = `https://${window.location.host}/_forms/spfxsinglesignon.aspx`;
|
|
173
|
+
let sid = _spPageContextInfo["aadSessionId"];
|
|
174
|
+
let codeVerifierBuffer = window.crypto.getRandomValues(new Uint8Array(32));
|
|
175
|
+
let codeVerifier = bufferToString(codeVerifierBuffer).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
176
|
+
let codeChallengeBuffer = await window.crypto.subtle.digest("SHA-256", new TextEncoder().encode(codeVerifier));
|
|
177
|
+
let codeChallenge = bufferToString(new Uint8Array(codeChallengeBuffer)).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
178
|
+
let nonce = generateNonce();
|
|
179
|
+
let url = `${_spPageContextInfo["aadInstanceUrl"]}/${_spPageContextInfo.aadTenantId}/oauth2/v2.0/authorize?`;
|
|
180
|
+
url += `client_id=08e18876-6177-487e-b8b5-cf950c1e598c`;
|
|
181
|
+
url += `&scope=${encodeURIComponent("https://graph.microsoft.com/.default openid profile offline_access")}`;
|
|
182
|
+
url += `&redirect_uri=${encodeURIComponent(redirectUri)}`;
|
|
183
|
+
url += `&client-request-id=${encodeURIComponent(requestId)}`;
|
|
184
|
+
url += `&response_mode=fragment`;
|
|
185
|
+
url += `&response_type=code`;
|
|
186
|
+
url += `&code_challenge=${codeChallenge}&code_challenge_method=S256&prompt=none`;
|
|
187
|
+
url += `&sid=${encodeURIComponent(sid)}&nonce=${nonce}`;
|
|
188
|
+
url += `&state=${encodeURIComponent(state)}`;
|
|
189
|
+
let getCodeFromIframe = async () => {
|
|
190
|
+
return new Promise((resolve, reject) => {
|
|
191
|
+
try {
|
|
192
|
+
let iframe = document.createElement("iframe");
|
|
193
|
+
iframe.style.display = "none";
|
|
194
|
+
iframe.src = url;
|
|
195
|
+
iframe.onload = () => {
|
|
196
|
+
window.setTimeout(() => {
|
|
197
|
+
let params = new URLSearchParams(iframe.contentWindow.location.hash.replace("#", "?"));
|
|
198
|
+
let pCode = params.get("code");
|
|
199
|
+
let pState = params.get("state");
|
|
200
|
+
let pSid = params.get("session_state");
|
|
201
|
+
if (!isNullOrEmptyString(pCode) && pState === state && pSid === sid) {
|
|
202
|
+
resolve(pCode);
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
reject();
|
|
206
|
+
}
|
|
207
|
+
document.removeChild(iframe);
|
|
208
|
+
}, 100);
|
|
209
|
+
};
|
|
210
|
+
document.body.appendChild(iframe);
|
|
211
|
+
}
|
|
212
|
+
catch {
|
|
213
|
+
reject();
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
};
|
|
217
|
+
let authCode = await getCodeFromIframe();
|
|
218
|
+
if (!isNullOrEmptyString(authCode)) {
|
|
219
|
+
let url = `${_spPageContextInfo["aadInstanceUrl"]}/${_spPageContextInfo.aadTenantId}/oauth2/v2.0/token?`;
|
|
220
|
+
url += `client-request-id=${encodeURIComponent(requestId)}`;
|
|
221
|
+
let fd = new FormData();
|
|
222
|
+
fd.append("client_id", "08e18876-6177-487e-b8b5-cf950c1e598c");
|
|
223
|
+
fd.append("scope", "https://graph.microsoft.com/.default openid profile offline_access");
|
|
224
|
+
fd.append("redirect_uri", redirectUri);
|
|
225
|
+
fd.append("code", authCode);
|
|
226
|
+
fd.append("grant_type", "authorization_code");
|
|
227
|
+
fd.append("code_verifier", codeVerifier);
|
|
228
|
+
let response = await fetch(url, {
|
|
229
|
+
method: "POST",
|
|
230
|
+
body: fd
|
|
231
|
+
});
|
|
232
|
+
if (response.ok) {
|
|
233
|
+
let authToken = await response.json();
|
|
234
|
+
return _parseAndCacheGetSPFxClientAuthTokenResult(authToken, spfxTokenType);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
catch {
|
|
83
239
|
}
|
|
84
|
-
let { url, body, options } = _getGetSPFxClientAuthTokenParams(siteUrl, spfxTokenType);
|
|
85
|
-
let result = await GetJson(url, body, options);
|
|
86
|
-
return _parseAndCacheGetSPFxClientAuthTokenResult(result, spfxTokenType);
|
|
87
240
|
}
|
|
88
|
-
|
|
241
|
+
else {
|
|
242
|
+
try {
|
|
243
|
+
let { url, body, options } = _getGetSPFxClientAuthTokenParams(siteUrl, spfxTokenType);
|
|
244
|
+
let result = await GetJson(url, body, options);
|
|
245
|
+
return _parseAndCacheGetSPFxClientAuthTokenResult(result, spfxTokenType);
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
}
|
|
89
249
|
}
|
|
90
250
|
return null;
|
|
91
251
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/utils/auth/common.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/utils/auth/common.ts"],"names":[],"mappings":"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"}
|