@icure/api 8.3.4 → 8.3.6
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/icc-api/api/IccAuthApi.d.ts +10 -1
- package/icc-api/api/IccAuthApi.js +20 -3
- package/icc-api/api/IccAuthApi.js.map +1 -1
- package/icc-api/model/Content.js +3 -0
- package/icc-api/model/Content.js.map +1 -1
- package/icc-x-api/auth/SmartAuthProvider.d.ts +37 -13
- package/icc-x-api/auth/SmartAuthProvider.js +105 -29
- package/icc-x-api/auth/SmartAuthProvider.js.map +1 -1
- package/icc-x-api/index.d.ts +8 -14
- package/icc-x-api/index.js +2 -2
- package/icc-x-api/index.js.map +1 -1
- package/package.json +1 -1
- package/test/icc-x-api/auth/group-switch-test.js +5 -5
- package/test/icc-x-api/auth/group-switch-test.js.map +1 -1
- package/test/icc-x-api/auth/jwt-provider-test.js +1 -1
- package/test/icc-x-api/auth/jwt-provider-test.js.map +1 -1
- package/test/icc-x-api/auth/smart-auth-provider-test.js +5 -5
- package/test/icc-x-api/auth/smart-auth-provider-test.js.map +1 -1
- package/test/icc-x-api/icc-user-x-api-test.js +1 -1
- package/test/icc-x-api/icc-user-x-api-test.js.map +1 -1
- package/test/utils/test_utils.js +1 -1
- package/test/utils/test_utils.js.map +1 -1
|
@@ -20,6 +20,9 @@ export declare enum OAuthThirdParty {
|
|
|
20
20
|
LINKEDIN = "linkedin",
|
|
21
21
|
GITHUB = "github"
|
|
22
22
|
}
|
|
23
|
+
export declare enum DigitalIdProvider {
|
|
24
|
+
BE_FAS = "be.fas"
|
|
25
|
+
}
|
|
23
26
|
export declare class IccAuthApi {
|
|
24
27
|
host: string;
|
|
25
28
|
headers: Array<XHR.Header>;
|
|
@@ -47,8 +50,14 @@ export declare class IccAuthApi {
|
|
|
47
50
|
* @summary login
|
|
48
51
|
* @param thirdParty The third party OAuth service used to authenticate the user
|
|
49
52
|
* @param token The token returned by the third party OAuth service
|
|
53
|
+
* @param groupId the group id where to login to.
|
|
54
|
+
*/
|
|
55
|
+
loginWithThirdPartyToken(thirdParty: string, token: string, groupId?: string): Promise<AuthenticationResponse>;
|
|
56
|
+
/**
|
|
57
|
+
* Lite only
|
|
58
|
+
* /auth/
|
|
50
59
|
*/
|
|
51
|
-
|
|
60
|
+
loginWithCloudToken(issuer: string, cloudJwt: string): Promise<AuthenticationResponse>;
|
|
52
61
|
/**
|
|
53
62
|
* Logout
|
|
54
63
|
* @summary logout
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IccAuthApi = exports.OAuthThirdParty = void 0;
|
|
3
|
+
exports.IccAuthApi = exports.DigitalIdProvider = exports.OAuthThirdParty = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* iCure Data Stack API Documentation
|
|
6
6
|
* The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.
|
|
@@ -24,6 +24,10 @@ var OAuthThirdParty;
|
|
|
24
24
|
OAuthThirdParty["LINKEDIN"] = "linkedin";
|
|
25
25
|
OAuthThirdParty["GITHUB"] = "github";
|
|
26
26
|
})(OAuthThirdParty || (exports.OAuthThirdParty = OAuthThirdParty = {}));
|
|
27
|
+
var DigitalIdProvider;
|
|
28
|
+
(function (DigitalIdProvider) {
|
|
29
|
+
DigitalIdProvider["BE_FAS"] = "be.fas";
|
|
30
|
+
})(DigitalIdProvider || (exports.DigitalIdProvider = DigitalIdProvider = {}));
|
|
27
31
|
class IccAuthApi {
|
|
28
32
|
constructor(host, headers, authenticationProvider, fetchImpl) {
|
|
29
33
|
this.host = (0, IccRestApiPath_1.iccRestApiPath)(host);
|
|
@@ -83,11 +87,12 @@ class IccAuthApi {
|
|
|
83
87
|
* @summary login
|
|
84
88
|
* @param thirdParty The third party OAuth service used to authenticate the user
|
|
85
89
|
* @param token The token returned by the third party OAuth service
|
|
90
|
+
* @param groupId the group id where to login to.
|
|
86
91
|
*/
|
|
87
|
-
loginWithThirdPartyToken(thirdParty, token) {
|
|
92
|
+
loginWithThirdPartyToken(thirdParty, token, groupId) {
|
|
88
93
|
let _body = null;
|
|
89
94
|
_body = token;
|
|
90
|
-
const _url = this.host + `/auth/login/${thirdParty}` + '?ts=' + new Date().getTime();
|
|
95
|
+
const _url = this.host + `/auth/login/${thirdParty}` + '?ts=' + new Date().getTime() + (groupId ? `&groupId=${encodeURIComponent(String(groupId))}` : '');
|
|
91
96
|
let headers = this.headers;
|
|
92
97
|
headers = headers
|
|
93
98
|
.filter((h) => { var _a; return h.header !== 'Content-Type' && ((_a = h.header) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== 'authorization'; })
|
|
@@ -97,6 +102,18 @@ class IccAuthApi {
|
|
|
97
102
|
.then((doc) => new AuthenticationResponse_1.AuthenticationResponse(doc.body))
|
|
98
103
|
.catch((err) => this.handleError(err));
|
|
99
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Lite only
|
|
107
|
+
* /auth/
|
|
108
|
+
*/
|
|
109
|
+
loginWithCloudToken(issuer, cloudJwt) {
|
|
110
|
+
let _body = null;
|
|
111
|
+
const _url = this.host + `/auth/login/icureCloud` + '?ts=' + new Date().getTime() + `&issuer=${encodeURIComponent(String(issuer))}`;
|
|
112
|
+
let headers = [...this.headers, new XHR_1.XHR.Header('Cloud-Auth-Token', cloudJwt)];
|
|
113
|
+
return XHR_1.XHR.sendCommand('POST', _url, headers.filter((h) => { var _a; return ((_a = h.header) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== 'authorization'; }), _body, this.fetchImpl)
|
|
114
|
+
.then((doc) => new AuthenticationResponse_1.AuthenticationResponse(doc.body))
|
|
115
|
+
.catch((err) => this.handleError(err));
|
|
116
|
+
}
|
|
100
117
|
/**
|
|
101
118
|
* Logout
|
|
102
119
|
* @summary logout
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IccAuthApi.js","sourceRoot":"","sources":["../../../icc-api/api/IccAuthApi.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { XHR } from './XHR'\nimport { AuthenticationResponse } from '../model/AuthenticationResponse'\nimport { LoginCredentials } from '../model/LoginCredentials'\nimport { AuthenticationProvider, NoAuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider'\nimport { iccRestApiPath } from './IccRestApiPath'\n\nexport enum OAuthThirdParty {\n GOOGLE = 'google',\n MICROSOFT = 'microsoft',\n APPLE = 'apple',\n LINKEDIN = 'linkedin',\n GITHUB = 'github',\n}\n\nexport class IccAuthApi {\n host: string\n headers: Array<XHR.Header>\n authenticationProvider: AuthenticationProvider\n fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n\n constructor(\n host: string,\n headers: any,\n authenticationProvider?: AuthenticationProvider,\n fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n ) {\n this.host = iccRestApiPath(host)\n this.headers = Object.keys(headers).map((k) => new XHR.Header(k, headers[k]))\n this.authenticationProvider = !!authenticationProvider ? authenticationProvider : new NoAuthenticationProvider()\n this.fetchImpl = fetchImpl\n }\n\n setHeaders(h: Array<XHR.Header>) {\n this.headers = h\n }\n\n handleError(e: XHR.XHRError): never {\n throw e\n }\n\n /**\n * Check login using groupId/userId and password\n * @summary check\n * @param body\n */\n check(body?: LoginCredentials): Promise<AuthenticationResponse> {\n let _body = null\n _body = body\n\n const _url = this.host + `/auth/check` + '?ts=' + new Date().getTime()\n let headers = this.headers\n headers = headers\n .filter((h) => h.header !== 'Content-Type' && h.header?.toLowerCase() !== 'authorization')\n .concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, _body, this.fetchImpl)\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Login using username and password\n * @summary login\n * @param body\n * @param groupId the group id where to login to.\n * @param duration the duration of the returned JWT authentication token, in seconds.\n */\n login(body?: LoginCredentials, groupId?: string, duration?: number): Promise<AuthenticationResponse> {\n let _body = null\n _body = body\n\n const _url =\n this.host +\n `/auth/login` +\n '?ts=' +\n new Date().getTime() +\n (groupId ? `&groupId=${encodeURIComponent(String(groupId))}` : '') +\n (!!duration ? `&duration=${duration}` : '')\n let headers = this.headers\n headers = headers\n .filter((h) => h.header !== 'Content-Type' && h.header?.toLowerCase() !== 'authorization')\n .concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, _body, this.fetchImpl, undefined)\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Login using third party OAuth provider token\n * @summary login\n * @param thirdParty The third party OAuth service used to authenticate the user\n * @param token The token returned by the third party OAuth service\n */\n loginWithThirdPartyToken(thirdParty: string, token: string): Promise<AuthenticationResponse> {\n let _body = null\n _body = token\n\n const _url = this.host + `/auth/login/${thirdParty}` + '?ts=' + new Date().getTime()\n let headers = this.headers\n headers = headers\n .filter((h) => h.header !== 'Content-Type' && h.header?.toLowerCase() !== 'authorization')\n .concat(new XHR.Header('Content-Type', 'application/json'))\n .concat(new XHR.Header('token', token))\n return XHR.sendCommand('POST', _url, headers, null, this.fetchImpl, undefined)\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Logout\n * @summary logout\n */\n logout(): Promise<AuthenticationResponse> {\n let _body = null\n\n const _url = this.host + `/auth/logout` + '?ts=' + new Date().getTime()\n let headers = this.headers\n return XHR.sendCommand(\n 'GET',\n _url,\n headers.filter((h) => h.header?.toLowerCase() !== 'authorization'),\n _body,\n this.fetchImpl,\n undefined,\n this.authenticationProvider.getAuthService()\n )\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Logout\n * @summary logout\n */\n logoutPost(): Promise<AuthenticationResponse> {\n let _body = null\n\n const _url = this.host + `/auth/logout` + '?ts=' + new Date().getTime()\n let headers = this.headers\n return XHR.sendCommand(\n 'POST',\n _url,\n headers.filter((h) => h.header?.toLowerCase() !== 'authorization'),\n _body,\n this.fetchImpl,\n undefined,\n this.authenticationProvider.getAuthService()\n )\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Get token for subsequent operation\n * @summary token\n * @param method\n * @param path\n */\n token(method: string, path: string): Promise<string> {\n let _body = null\n\n const _url = this.host + `/auth/token/${encodeURIComponent(String(method))}/${encodeURIComponent(String(path))}` + '?ts=' + new Date().getTime()\n let headers = this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => JSON.parse(JSON.stringify(doc.body)) as string)\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Gets a new authentication and refresh JWT for a different group\n */\n switchGroup(refreshJWT: string, groupId: string): Promise<AuthenticationResponse> {\n let _body = null\n\n const _url = this.host + `/auth/switch/${encodeURIComponent(String(groupId))}` + '?ts=' + new Date().getTime()\n let headers = [...this.headers, new XHR.Header('Refresh-Token', refreshJWT)]\n return XHR.sendCommand(\n 'POST',\n _url,\n headers.filter((h) => h.header?.toLowerCase() !== 'authorization'),\n _body,\n this.fetchImpl\n )\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Gets a new authentication JWT using the refresh JWT\n * @summary refresh\n */\n refreshAuthenticationJWT(refreshJWT: string): Promise<AuthenticationResponse> {\n let _body = null\n\n const _url = this.host + `/auth/refresh` + '?ts=' + new Date().getTime()\n let headers = [...this.headers, new XHR.Header('Refresh-Token', refreshJWT)]\n return XHR.sendCommand(\n 'POST',\n _url,\n headers.filter((h) => h.header?.toLowerCase() !== 'authorization'),\n _body,\n this.fetchImpl\n )\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Switch groups using the refresh JWT\n * @summary switch groups\n */\n switchGroupUsingRefreshJWT(groupId: string): Promise<AuthenticationResponse> {\n return this.authenticationProvider.getIcureTokens().then((tokens) => {\n let _body = null\n const _url = this.host + `/auth/switch/${encodeURIComponent(String(groupId))}` + '?ts=' + new Date().getTime()\n\n const refreshToken = tokens?.refreshToken\n if (!refreshToken) {\n throw new Error('No refresh token found')\n }\n let headers = [...this.headers, new XHR.Header('Refresh-Token', refreshToken)]\n return XHR.sendCommand(\n 'POST',\n _url,\n headers.filter((h) => h.header?.toLowerCase() !== 'authorization'),\n _body,\n this.fetchImpl\n )\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n })\n }\n\n /**\n * Invalidates a refresh JWT\n * @summary invalidate\n */\n invalidateRefreshJWT(refreshJWT: string): Promise<AuthenticationResponse> {\n let _body = null\n\n const _url = this.host + `/auth/invalidate` + '?ts=' + new Date().getTime()\n let headers = [...this.headers, new XHR.Header('Refresh-Token', refreshJWT)]\n return XHR.sendCommand(\n 'POST',\n _url,\n headers.filter((h) => h.header?.toLowerCase() !== 'authorization'),\n _body,\n this.fetchImpl\n )\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"IccAuthApi.js","sourceRoot":"","sources":["../../../icc-api/api/IccAuthApi.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { XHR } from './XHR'\nimport { AuthenticationResponse } from '../model/AuthenticationResponse'\nimport { LoginCredentials } from '../model/LoginCredentials'\nimport { AuthenticationProvider, NoAuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider'\nimport { iccRestApiPath } from './IccRestApiPath'\n\nexport enum OAuthThirdParty {\n GOOGLE = 'google',\n MICROSOFT = 'microsoft',\n APPLE = 'apple',\n LINKEDIN = 'linkedin',\n GITHUB = 'github',\n}\n\nexport enum DigitalIdProvider {\n BE_FAS = 'be.fas',\n}\n\nexport class IccAuthApi {\n host: string\n headers: Array<XHR.Header>\n authenticationProvider: AuthenticationProvider\n fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n\n constructor(\n host: string,\n headers: any,\n authenticationProvider?: AuthenticationProvider,\n fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n ) {\n this.host = iccRestApiPath(host)\n this.headers = Object.keys(headers).map((k) => new XHR.Header(k, headers[k]))\n this.authenticationProvider = !!authenticationProvider ? authenticationProvider : new NoAuthenticationProvider()\n this.fetchImpl = fetchImpl\n }\n\n setHeaders(h: Array<XHR.Header>) {\n this.headers = h\n }\n\n handleError(e: XHR.XHRError): never {\n throw e\n }\n\n /**\n * Check login using groupId/userId and password\n * @summary check\n * @param body\n */\n check(body?: LoginCredentials): Promise<AuthenticationResponse> {\n let _body = null\n _body = body\n\n const _url = this.host + `/auth/check` + '?ts=' + new Date().getTime()\n let headers = this.headers\n headers = headers\n .filter((h) => h.header !== 'Content-Type' && h.header?.toLowerCase() !== 'authorization')\n .concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, _body, this.fetchImpl)\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Login using username and password\n * @summary login\n * @param body\n * @param groupId the group id where to login to.\n * @param duration the duration of the returned JWT authentication token, in seconds.\n */\n login(body?: LoginCredentials, groupId?: string, duration?: number): Promise<AuthenticationResponse> {\n let _body = null\n _body = body\n\n const _url =\n this.host +\n `/auth/login` +\n '?ts=' +\n new Date().getTime() +\n (groupId ? `&groupId=${encodeURIComponent(String(groupId))}` : '') +\n (!!duration ? `&duration=${duration}` : '')\n let headers = this.headers\n headers = headers\n .filter((h) => h.header !== 'Content-Type' && h.header?.toLowerCase() !== 'authorization')\n .concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, _body, this.fetchImpl, undefined)\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Login using third party OAuth provider token\n * @summary login\n * @param thirdParty The third party OAuth service used to authenticate the user\n * @param token The token returned by the third party OAuth service\n * @param groupId the group id where to login to.\n */\n loginWithThirdPartyToken(thirdParty: string, token: string, groupId?: string): Promise<AuthenticationResponse> {\n let _body = null\n _body = token\n\n const _url =\n this.host + `/auth/login/${thirdParty}` + '?ts=' + new Date().getTime() + (groupId ? `&groupId=${encodeURIComponent(String(groupId))}` : '')\n let headers = this.headers\n headers = headers\n .filter((h) => h.header !== 'Content-Type' && h.header?.toLowerCase() !== 'authorization')\n .concat(new XHR.Header('Content-Type', 'application/json'))\n .concat(new XHR.Header('token', token))\n return XHR.sendCommand('POST', _url, headers, null, this.fetchImpl, undefined)\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Lite only\n * /auth/\n */\n loginWithCloudToken(issuer: string, cloudJwt: string): Promise<AuthenticationResponse> {\n let _body = null\n\n const _url = this.host + `/auth/login/icureCloud` + '?ts=' + new Date().getTime() + `&issuer=${encodeURIComponent(String(issuer))}`\n let headers = [...this.headers, new XHR.Header('Cloud-Auth-Token', cloudJwt)]\n return XHR.sendCommand(\n 'POST',\n _url,\n headers.filter((h) => h.header?.toLowerCase() !== 'authorization'),\n _body,\n this.fetchImpl\n )\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Logout\n * @summary logout\n */\n logout(): Promise<AuthenticationResponse> {\n let _body = null\n\n const _url = this.host + `/auth/logout` + '?ts=' + new Date().getTime()\n let headers = this.headers\n return XHR.sendCommand(\n 'GET',\n _url,\n headers.filter((h) => h.header?.toLowerCase() !== 'authorization'),\n _body,\n this.fetchImpl,\n undefined,\n this.authenticationProvider.getAuthService()\n )\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Logout\n * @summary logout\n */\n logoutPost(): Promise<AuthenticationResponse> {\n let _body = null\n\n const _url = this.host + `/auth/logout` + '?ts=' + new Date().getTime()\n let headers = this.headers\n return XHR.sendCommand(\n 'POST',\n _url,\n headers.filter((h) => h.header?.toLowerCase() !== 'authorization'),\n _body,\n this.fetchImpl,\n undefined,\n this.authenticationProvider.getAuthService()\n )\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Get token for subsequent operation\n * @summary token\n * @param method\n * @param path\n */\n token(method: string, path: string): Promise<string> {\n let _body = null\n\n const _url = this.host + `/auth/token/${encodeURIComponent(String(method))}/${encodeURIComponent(String(path))}` + '?ts=' + new Date().getTime()\n let headers = this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => JSON.parse(JSON.stringify(doc.body)) as string)\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Gets a new authentication and refresh JWT for a different group\n */\n switchGroup(refreshJWT: string, groupId: string): Promise<AuthenticationResponse> {\n let _body = null\n\n const _url = this.host + `/auth/switch/${encodeURIComponent(String(groupId))}` + '?ts=' + new Date().getTime()\n let headers = [...this.headers, new XHR.Header('Refresh-Token', refreshJWT)]\n return XHR.sendCommand(\n 'POST',\n _url,\n headers.filter((h) => h.header?.toLowerCase() !== 'authorization'),\n _body,\n this.fetchImpl\n )\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Gets a new authentication JWT using the refresh JWT\n * @summary refresh\n */\n refreshAuthenticationJWT(refreshJWT: string): Promise<AuthenticationResponse> {\n let _body = null\n\n const _url = this.host + `/auth/refresh` + '?ts=' + new Date().getTime()\n let headers = [...this.headers, new XHR.Header('Refresh-Token', refreshJWT)]\n return XHR.sendCommand(\n 'POST',\n _url,\n headers.filter((h) => h.header?.toLowerCase() !== 'authorization'),\n _body,\n this.fetchImpl\n )\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Switch groups using the refresh JWT\n * @summary switch groups\n */\n switchGroupUsingRefreshJWT(groupId: string): Promise<AuthenticationResponse> {\n return this.authenticationProvider.getIcureTokens().then((tokens) => {\n let _body = null\n const _url = this.host + `/auth/switch/${encodeURIComponent(String(groupId))}` + '?ts=' + new Date().getTime()\n\n const refreshToken = tokens?.refreshToken\n if (!refreshToken) {\n throw new Error('No refresh token found')\n }\n let headers = [...this.headers, new XHR.Header('Refresh-Token', refreshToken)]\n return XHR.sendCommand(\n 'POST',\n _url,\n headers.filter((h) => h.header?.toLowerCase() !== 'authorization'),\n _body,\n this.fetchImpl\n )\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n })\n }\n\n /**\n * Invalidates a refresh JWT\n * @summary invalidate\n */\n invalidateRefreshJWT(refreshJWT: string): Promise<AuthenticationResponse> {\n let _body = null\n\n const _url = this.host + `/auth/invalidate` + '?ts=' + new Date().getTime()\n let headers = [...this.headers, new XHR.Header('Refresh-Token', refreshJWT)]\n return XHR.sendCommand(\n 'POST',\n _url,\n headers.filter((h) => h.header?.toLowerCase() !== 'authorization'),\n _body,\n this.fetchImpl\n )\n .then((doc) => new AuthenticationResponse(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n}\n"]}
|
package/icc-api/model/Content.js
CHANGED
|
@@ -28,6 +28,9 @@ class Content {
|
|
|
28
28
|
else if (json.binaryValue instanceof ArrayBuffer || ArrayBuffer.isView(json.binaryValue)) {
|
|
29
29
|
binaryData.binaryValue = json.binaryValue;
|
|
30
30
|
}
|
|
31
|
+
else if (typeof json.binaryValue === 'object' && Object.keys(json.binaryValue).length === 0) {
|
|
32
|
+
delete binaryData.binaryValue;
|
|
33
|
+
}
|
|
31
34
|
else {
|
|
32
35
|
throw new Error(`Invalid type for binaryValue: ${typeof json.binaryValue}`);
|
|
33
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Content.js","sourceRoot":"","sources":["../../../icc-api/model/Content.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,uCAAmC;AAEnC,uCAAmC;AAGnC;;GAEG;AACH,+CAAuC;AACvC,MAAa,OAAO;IAClB,YAAY,IAAgB;QAC1B,IAAI,UAAU,GAAkC,EAAE,CAAA;QAClD,IAAI,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAA,EAAE,CAAC;YACxB,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACzC,UAAU,CAAC,WAAW,GAAG,IAAA,qBAAO,EAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACpD,CAAC;iBAAM,IAAI,IAAI,CAAC,WAAW,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3F,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;YAC3C,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YAC7E,CAAC;QACH,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,IAAe,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;QAEhD,IAAI,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,CAAA,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAA,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAmB,EAAE,EAAE,CAAC,IAAI,iBAAO,CAAC,OAAO,CAAC,CAAC,CAAA;QAC5F,CAAC;IACH,CAAC;CAqBF;
|
|
1
|
+
{"version":3,"file":"Content.js","sourceRoot":"","sources":["../../../icc-api/model/Content.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,uCAAmC;AAEnC,uCAAmC;AAGnC;;GAEG;AACH,+CAAuC;AACvC,MAAa,OAAO;IAClB,YAAY,IAAgB;QAC1B,IAAI,UAAU,GAAkC,EAAE,CAAA;QAClD,IAAI,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAA,EAAE,CAAC;YACxB,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACzC,UAAU,CAAC,WAAW,GAAG,IAAA,qBAAO,EAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACpD,CAAC;iBAAM,IAAI,IAAI,CAAC,WAAW,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3F,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;YAC3C,CAAC;iBAAM,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9F,OAAO,UAAU,CAAC,WAAW,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YAC7E,CAAC;QACH,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,IAAe,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;QAEhD,IAAI,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,CAAA,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAA,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAmB,EAAE,EAAE,CAAC,IAAI,iBAAO,CAAC,OAAO,CAAC,CAAC,CAAA;QAC5F,CAAC;IACH,CAAC;CAqBF;AA5CD,0BA4CC","sourcesContent":["/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { Measure } from './Measure'\nimport { Medication } from './Medication'\nimport { Service } from './Service'\nimport { TimeSeries } from './TimeSeries'\n\n/**\n * Information contained in the service. Content is localized, using ISO language code as key\n */\nimport { b64_2ab } from './ModelHelper'\nexport class Content {\n constructor(json: JSON | any) {\n let binaryData: { binaryValue?: ArrayBuffer } = {}\n if (!!json?.binaryValue) {\n if (typeof json.binaryValue === 'string') {\n binaryData.binaryValue = b64_2ab(json.binaryValue)\n } else if (json.binaryValue instanceof ArrayBuffer || ArrayBuffer.isView(json.binaryValue)) {\n binaryData.binaryValue = json.binaryValue\n } else if (typeof json.binaryValue === 'object' && Object.keys(json.binaryValue).length === 0) {\n delete binaryData.binaryValue\n } else {\n throw new Error(`Invalid type for binaryValue: ${typeof json.binaryValue}`)\n }\n }\n Object.assign(this as Content, json, binaryData)\n\n if (!!json?.measureValue) {\n this.measureValue = new Measure(json.measureValue)\n }\n\n if (!!json?.compoundValue) {\n this.compoundValue = json.compoundValue.map((service: JSON | any) => new Service(service))\n }\n }\n\n stringValue?: string\n numberValue?: number\n booleanValue?: boolean\n instantValue?: number\n /**\n * Value as date. The format could have a all three (day, month and year) or values on any of these three, whatever is known.\n */\n fuzzyDateValue?: number\n binaryValue?: ArrayBuffer\n /**\n * Linked document.\n */\n documentId?: string\n measureValue?: Measure\n medicationValue?: Medication\n timeSeries?: TimeSeries\n compoundValue?: Array<Service>\n ratio?: Array<Measure>\n range?: Array<Measure>\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AuthenticationProvider } from './AuthenticationProvider';
|
|
2
2
|
import { UserGroup } from '../../icc-api/model/UserGroup';
|
|
3
3
|
import { AuthService } from './AuthService';
|
|
4
|
-
import { IccAuthApi, OAuthThirdParty } from '../../icc-api';
|
|
4
|
+
import { DigitalIdProvider, IccAuthApi, OAuthThirdParty } from '../../icc-api';
|
|
5
5
|
/**
|
|
6
6
|
* Needed by a {@link SmartAuthProvider} to get the secrets (password, token, etc.) for authentication to the iCure SDK as needed.
|
|
7
7
|
*/
|
|
@@ -47,11 +47,19 @@ export interface AuthSecretProvider {
|
|
|
47
47
|
}
|
|
48
48
|
export type AuthSecretDetails = {
|
|
49
49
|
value: string;
|
|
50
|
-
secretType: Exclude<AuthSecretType, AuthSecretType.EXTERNAL_AUTHENTICATION>;
|
|
50
|
+
secretType: Exclude<AuthSecretType, AuthSecretType.EXTERNAL_AUTHENTICATION | AuthSecretType.DIGITAL_ID | AuthSecretType.ICURE_CLOUD>;
|
|
51
51
|
} | {
|
|
52
52
|
value: string;
|
|
53
53
|
secretType: AuthSecretType.EXTERNAL_AUTHENTICATION;
|
|
54
54
|
oauthType: OAuthThirdParty;
|
|
55
|
+
} | {
|
|
56
|
+
value: string;
|
|
57
|
+
secretType: AuthSecretType.DIGITAL_ID;
|
|
58
|
+
provider: DigitalIdProvider;
|
|
59
|
+
} | {
|
|
60
|
+
value: string;
|
|
61
|
+
secretType: AuthSecretType.ICURE_CLOUD;
|
|
62
|
+
issuer: string;
|
|
55
63
|
};
|
|
56
64
|
/**
|
|
57
65
|
* Represents a type of secret that can be used for authentication with iCure.
|
|
@@ -80,8 +88,31 @@ export declare enum AuthSecretType {
|
|
|
80
88
|
* A token provided by an external authentication provider (e.g. Oauth/Google).
|
|
81
89
|
* Not yet in use.
|
|
82
90
|
*/
|
|
83
|
-
EXTERNAL_AUTHENTICATION = "EXTERNAL_AUTHENTICATION"
|
|
91
|
+
EXTERNAL_AUTHENTICATION = "EXTERNAL_AUTHENTICATION",
|
|
92
|
+
/**
|
|
93
|
+
* A special case of external authentication where the provider is a digital identity provider.
|
|
94
|
+
*/
|
|
95
|
+
DIGITAL_ID = "DIGITAL_ID",
|
|
96
|
+
/**
|
|
97
|
+
* The secret is an authentication token for a cloud instance of icure (kraken-cloud).
|
|
98
|
+
* Supported only on lite instances.
|
|
99
|
+
*/
|
|
100
|
+
ICURE_CLOUD = "ICURE_CLOUD"
|
|
84
101
|
}
|
|
102
|
+
export type SmartAuthProviderInitialSecret = {
|
|
103
|
+
password: string;
|
|
104
|
+
} | {
|
|
105
|
+
longToken: string;
|
|
106
|
+
} | {
|
|
107
|
+
oauthToken: string;
|
|
108
|
+
oauthType: OAuthThirdParty;
|
|
109
|
+
} | {
|
|
110
|
+
digitalIdToken: string;
|
|
111
|
+
provider: DigitalIdProvider;
|
|
112
|
+
} | {
|
|
113
|
+
cloudToken: string;
|
|
114
|
+
issuer: string;
|
|
115
|
+
};
|
|
85
116
|
/**
|
|
86
117
|
* @internal this class is meant for internal use only and may be changed without notice. The SmartAuthProvider will be initialised automatically
|
|
87
118
|
* by the iCure api depending on the authentication options you provide.
|
|
@@ -112,20 +143,13 @@ export declare class SmartAuthProvider implements AuthenticationProvider {
|
|
|
112
143
|
* @param secretProvider
|
|
113
144
|
* @param props optional initialisation properties.
|
|
114
145
|
*/
|
|
115
|
-
static initialise(authApi: IccAuthApi, login: string, secretProvider: AuthSecretProvider, props?: {
|
|
116
|
-
initialSecret?:
|
|
117
|
-
password: string;
|
|
118
|
-
} | {
|
|
119
|
-
longToken: string;
|
|
120
|
-
} | {
|
|
121
|
-
oauthToken: string;
|
|
122
|
-
oauthType: OAuthThirdParty;
|
|
123
|
-
};
|
|
146
|
+
static initialise(authApi: IccAuthApi, login: string | undefined, secretProvider: AuthSecretProvider, props?: {
|
|
147
|
+
initialSecret?: SmartAuthProviderInitialSecret;
|
|
124
148
|
initialAuthToken?: string;
|
|
125
149
|
initialRefreshToken?: string;
|
|
126
150
|
loginGroupId?: string;
|
|
127
151
|
debugLog?: boolean;
|
|
128
|
-
}): SmartAuthProvider
|
|
152
|
+
}): Promise<SmartAuthProvider>;
|
|
129
153
|
private constructor();
|
|
130
154
|
getAuthService(): AuthService;
|
|
131
155
|
switchGroup(newGroupId: string, matches: Array<UserGroup>): Promise<AuthenticationProvider>;
|
|
@@ -45,9 +45,13 @@ var AuthSecretType;
|
|
|
45
45
|
AuthSecretType["EXTERNAL_AUTHENTICATION"] = "EXTERNAL_AUTHENTICATION";
|
|
46
46
|
/**
|
|
47
47
|
* A special case of external authentication where the provider is a digital identity provider.
|
|
48
|
-
* Not yet in use.
|
|
49
48
|
*/
|
|
50
|
-
|
|
49
|
+
AuthSecretType["DIGITAL_ID"] = "DIGITAL_ID";
|
|
50
|
+
/**
|
|
51
|
+
* The secret is an authentication token for a cloud instance of icure (kraken-cloud).
|
|
52
|
+
* Supported only on lite instances.
|
|
53
|
+
*/
|
|
54
|
+
AuthSecretType["ICURE_CLOUD"] = "ICURE_CLOUD";
|
|
51
55
|
})(AuthSecretType || (exports.AuthSecretType = AuthSecretType = {}));
|
|
52
56
|
// Here starts internal entities that should not be used directly.
|
|
53
57
|
/**
|
|
@@ -78,24 +82,70 @@ class SmartAuthProvider {
|
|
|
78
82
|
* @param secretProvider
|
|
79
83
|
* @param props optional initialisation properties.
|
|
80
84
|
*/
|
|
81
|
-
static initialise(
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
85
|
+
static initialise(authApi_1, login_1, secretProvider_1) {
|
|
86
|
+
return __awaiter(this, arguments, void 0, function* (authApi, login, secretProvider, props = {}) {
|
|
87
|
+
let initialSecret = undefined;
|
|
88
|
+
let initialAuthToken = props.initialAuthToken;
|
|
89
|
+
let initialRefreshToken = props.initialRefreshToken;
|
|
90
|
+
if (props.initialSecret) {
|
|
91
|
+
if ('password' in props.initialSecret) {
|
|
92
|
+
if (login == undefined)
|
|
93
|
+
throw new Error('To use a password initial secret you must provide a login identifier');
|
|
94
|
+
initialSecret = { value: props.initialSecret.password, type: ServerAuthenticationClass.PASSWORD };
|
|
95
|
+
}
|
|
96
|
+
else if ('longToken' in props.initialSecret) {
|
|
97
|
+
if (login == undefined)
|
|
98
|
+
throw new Error('To use a password initial secret you must provide a login identifier');
|
|
99
|
+
initialSecret = { value: props.initialSecret.longToken, type: ServerAuthenticationClass.LONG_LIVED_TOKEN };
|
|
100
|
+
}
|
|
101
|
+
else if ('oauthToken' in props.initialSecret) {
|
|
102
|
+
if (longLivedOAuthTokens.has(props.initialSecret.oauthType)) {
|
|
103
|
+
initialSecret = {
|
|
104
|
+
value: props.initialSecret.oauthToken,
|
|
105
|
+
type: ServerAuthenticationClass.EXTERNAL_AUTHENTICATION,
|
|
106
|
+
oauthType: props.initialSecret.oauthType,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
try {
|
|
111
|
+
const authResponse = yield authApi.loginWithThirdPartyToken(props.initialSecret.oauthType, props.initialSecret.oauthToken, props.loginGroupId);
|
|
112
|
+
if (authResponse.token != undefined && authResponse.refreshToken != undefined) {
|
|
113
|
+
initialAuthToken = authResponse.token;
|
|
114
|
+
initialRefreshToken = authResponse.refreshToken;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (_) {
|
|
118
|
+
/* ignored */
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else if ('digitalIdToken' in props.initialSecret) {
|
|
123
|
+
try {
|
|
124
|
+
const authResponse = yield authApi.loginWithThirdPartyToken(props.initialSecret.provider, props.initialSecret.digitalIdToken, props.loginGroupId);
|
|
125
|
+
if (authResponse.token != undefined && authResponse.refreshToken != undefined) {
|
|
126
|
+
initialAuthToken = authResponse.token;
|
|
127
|
+
initialRefreshToken = authResponse.refreshToken;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (_) {
|
|
131
|
+
/* ignored */
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
try {
|
|
136
|
+
const authResponse = yield authApi.loginWithCloudToken(props.initialSecret.issuer, props.initialSecret.cloudToken);
|
|
137
|
+
if (authResponse.token != undefined && authResponse.refreshToken != undefined) {
|
|
138
|
+
initialAuthToken = authResponse.token;
|
|
139
|
+
initialRefreshToken = authResponse.refreshToken;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
catch (_) {
|
|
143
|
+
/* ignored */
|
|
144
|
+
}
|
|
145
|
+
}
|
|
96
146
|
}
|
|
97
|
-
|
|
98
|
-
|
|
147
|
+
return new SmartAuthProvider(new TokenProvider(login, props.loginGroupId, initialSecret, initialAuthToken, initialRefreshToken, authApi, secretProvider, props.debugLog != undefined ? props.debugLog : true), props.loginGroupId);
|
|
148
|
+
});
|
|
99
149
|
}
|
|
100
150
|
constructor(tokenProvider, groupId) {
|
|
101
151
|
this.tokenProvider = tokenProvider;
|
|
@@ -121,7 +171,7 @@ class SmartAuthProvider {
|
|
|
121
171
|
exports.SmartAuthProvider = SmartAuthProvider;
|
|
122
172
|
var ServerAuthenticationClass;
|
|
123
173
|
(function (ServerAuthenticationClass) {
|
|
124
|
-
|
|
174
|
+
ServerAuthenticationClass[ServerAuthenticationClass["DIGITAL_ID"] = 60] = "DIGITAL_ID";
|
|
125
175
|
ServerAuthenticationClass[ServerAuthenticationClass["TWO_FACTOR_AUTHENTICATION"] = 50] = "TWO_FACTOR_AUTHENTICATION";
|
|
126
176
|
ServerAuthenticationClass[ServerAuthenticationClass["SHORT_LIVED_TOKEN"] = 40] = "SHORT_LIVED_TOKEN";
|
|
127
177
|
ServerAuthenticationClass[ServerAuthenticationClass["EXTERNAL_AUTHENTICATION"] = 30] = "EXTERNAL_AUTHENTICATION";
|
|
@@ -199,7 +249,7 @@ class TokenProvider {
|
|
|
199
249
|
if (!!this.currentLongLivedSecret && (!this.currentLongLivedSecret.type || this.currentLongLivedSecret.type >= minimumAuthenticationClassLevel)) {
|
|
200
250
|
if (this.debugLog)
|
|
201
251
|
console.log('Using cached secret');
|
|
202
|
-
const resultWithCachedSecret = yield this.doGetTokenWithSecret(this.currentLongLivedSecret, minimumAuthenticationClassLevel);
|
|
252
|
+
const resultWithCachedSecret = yield this.doGetTokenWithSecret({ cached: this.currentLongLivedSecret }, minimumAuthenticationClassLevel);
|
|
203
253
|
if ('success' in resultWithCachedSecret) {
|
|
204
254
|
if (this.debugLog)
|
|
205
255
|
console.log('New token using cached secret success');
|
|
@@ -227,12 +277,20 @@ class TokenProvider {
|
|
|
227
277
|
askSecretAndGetToken(minimumAuthenticationClassLevel, passwordIsValidAs2fa) {
|
|
228
278
|
return __awaiter(this, void 0, void 0, function* () {
|
|
229
279
|
const acceptedSecrets = [
|
|
230
|
-
minimumAuthenticationClassLevel <= ServerAuthenticationClass.LONG_LIVED_TOKEN
|
|
231
|
-
|
|
280
|
+
minimumAuthenticationClassLevel <= ServerAuthenticationClass.LONG_LIVED_TOKEN && this.login != undefined
|
|
281
|
+
? [AuthSecretType.LONG_LIVED_TOKEN]
|
|
282
|
+
: [],
|
|
283
|
+
minimumAuthenticationClassLevel <= ServerAuthenticationClass.SHORT_LIVED_TOKEN && this.login != undefined
|
|
284
|
+
? [AuthSecretType.SHORT_LIVED_TOKEN]
|
|
285
|
+
: [],
|
|
232
286
|
minimumAuthenticationClassLevel <= ServerAuthenticationClass.TWO_FACTOR_AUTHENTICATION &&
|
|
287
|
+
this.login != undefined &&
|
|
233
288
|
(passwordIsValidAs2fa || minimumAuthenticationClassLevel <= ServerAuthenticationClass.PASSWORD)
|
|
234
289
|
? [AuthSecretType.PASSWORD]
|
|
235
290
|
: [],
|
|
291
|
+
minimumAuthenticationClassLevel <= 0 ? [AuthSecretType.ICURE_CLOUD] : [],
|
|
292
|
+
minimumAuthenticationClassLevel <= ServerAuthenticationClass.DIGITAL_ID ? [AuthSecretType.DIGITAL_ID] : [],
|
|
293
|
+
minimumAuthenticationClassLevel <= ServerAuthenticationClass.EXTERNAL_AUTHENTICATION ? [AuthSecretType.EXTERNAL_AUTHENTICATION] : [],
|
|
236
294
|
].flat();
|
|
237
295
|
if (!acceptedSecrets.length)
|
|
238
296
|
throw new Error('Internal error: no secret type is accepted for this request. Group may be misconfigured, or client may be outdated.');
|
|
@@ -244,7 +302,7 @@ class TokenProvider {
|
|
|
244
302
|
if (!acceptedSecrets.includes(secretDetails.secretType))
|
|
245
303
|
throw new Error(`Accepted secret types are ${JSON.stringify(acceptedSecrets)}, but got a secret of type ${secretDetails.secretType}.`);
|
|
246
304
|
attempts.push(secretDetails);
|
|
247
|
-
const result = yield this.doGetTokenWithSecret(secretDetails, minimumAuthenticationClassLevel);
|
|
305
|
+
const result = yield this.doGetTokenWithSecret({ new: secretDetails }, minimumAuthenticationClassLevel);
|
|
248
306
|
if ('success' in result) {
|
|
249
307
|
this.updateCachedSecret(secretDetails);
|
|
250
308
|
return result.success;
|
|
@@ -269,7 +327,7 @@ class TokenProvider {
|
|
|
269
327
|
if (details.secretType != AuthSecretType.TWO_FACTOR_AUTHENTICATION_TOKEN)
|
|
270
328
|
throw new Error(`Was expecting a 2fa token but got a secret of type ${details.secretType}.`);
|
|
271
329
|
attempts.push(details);
|
|
272
|
-
const result = yield this.doGetTokenWithSecret({ value: `${password}|${details.value}
|
|
330
|
+
const result = yield this.doGetTokenWithSecret({ new: { value: `${password}|${details.value}`, secretType: AuthSecretType.TWO_FACTOR_AUTHENTICATION_TOKEN } }, minimumAuthenticationClassLevel);
|
|
273
331
|
if ('success' in result) {
|
|
274
332
|
this.updateCachedSecret({ value: password, secretType: AuthSecretType.PASSWORD });
|
|
275
333
|
return result.success;
|
|
@@ -280,14 +338,32 @@ class TokenProvider {
|
|
|
280
338
|
}
|
|
281
339
|
});
|
|
282
340
|
}
|
|
283
|
-
doGetTokenWithSecret(
|
|
341
|
+
doGetTokenWithSecret(secretDetails, minimumAuthenticationClassLevel) {
|
|
284
342
|
return __awaiter(this, void 0, void 0, function* () {
|
|
285
343
|
let authResultPromise;
|
|
286
|
-
if ('
|
|
287
|
-
|
|
344
|
+
if ('cached' in secretDetails) {
|
|
345
|
+
const secret = secretDetails.cached;
|
|
346
|
+
if ('oauthType' in secret && !!secret.oauthType) {
|
|
347
|
+
authResultPromise = this.authApi.loginWithThirdPartyToken(secret.oauthType, secret.value, this.groupId);
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
authResultPromise = this.authApi.login({ username: this.login, password: secret.value }, this.groupId);
|
|
351
|
+
}
|
|
288
352
|
}
|
|
289
353
|
else {
|
|
290
|
-
|
|
354
|
+
const secret = secretDetails.new;
|
|
355
|
+
if (secret.secretType == AuthSecretType.DIGITAL_ID) {
|
|
356
|
+
authResultPromise = this.authApi.loginWithThirdPartyToken(secret.provider, secret.value, this.groupId);
|
|
357
|
+
}
|
|
358
|
+
else if (secret.secretType == AuthSecretType.EXTERNAL_AUTHENTICATION) {
|
|
359
|
+
authResultPromise = this.authApi.loginWithThirdPartyToken(secret.oauthType, secret.value, this.groupId);
|
|
360
|
+
}
|
|
361
|
+
else if (secret.secretType == AuthSecretType.ICURE_CLOUD) {
|
|
362
|
+
authResultPromise = this.authApi.loginWithCloudToken(secret.issuer, secret.value);
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
authResultPromise = this.authApi.login({ username: this.login, password: secret.value }, this.groupId);
|
|
366
|
+
}
|
|
291
367
|
}
|
|
292
368
|
return authResultPromise.then((authResult) => {
|
|
293
369
|
const { token, refreshToken } = authResult;
|