@opencampus/ocid-connect-js 1.1.1 → 1.2.0
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/lib/sdk/auth.js
CHANGED
|
@@ -38,18 +38,22 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
38
38
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
39
39
|
*/
|
|
40
40
|
var OCAuthCore = exports.OCAuthCore = /*#__PURE__*/function () {
|
|
41
|
-
function OCAuthCore(loginEndpoint, redirectUri, transactionManager, tokenManager) {
|
|
41
|
+
function OCAuthCore(loginEndpoint, redirectUri, transactionManager, tokenManager, referralCode, logoutEndPoint) {
|
|
42
42
|
_classCallCheck(this, OCAuthCore);
|
|
43
43
|
_defineProperty(this, "tokenManager", void 0);
|
|
44
44
|
_defineProperty(this, "authInfoManager", void 0);
|
|
45
45
|
_defineProperty(this, "transactionManager", void 0);
|
|
46
46
|
_defineProperty(this, "redirectUri", void 0);
|
|
47
47
|
_defineProperty(this, "loginEndPoint", void 0);
|
|
48
|
+
_defineProperty(this, "logoutEndPoint", void 0);
|
|
49
|
+
_defineProperty(this, "referralCode", void 0);
|
|
48
50
|
this.transactionManager = transactionManager;
|
|
49
51
|
this.tokenManager = tokenManager;
|
|
50
52
|
this.authInfoManager = new _AuthInfoManager["default"]();
|
|
51
53
|
this.loginEndPoint = loginEndpoint;
|
|
54
|
+
this.logoutEndPoint = logoutEndPoint;
|
|
52
55
|
this.redirectUri = redirectUri;
|
|
56
|
+
this.referralCode = referralCode;
|
|
53
57
|
this.syncAuthInfo();
|
|
54
58
|
}
|
|
55
59
|
return _createClass(OCAuthCore, [{
|
|
@@ -59,30 +63,53 @@ var OCAuthCore = exports.OCAuthCore = /*#__PURE__*/function () {
|
|
|
59
63
|
this.tokenManager.clear();
|
|
60
64
|
}
|
|
61
65
|
}, {
|
|
62
|
-
key: "
|
|
66
|
+
key: "logout",
|
|
63
67
|
value: function () {
|
|
64
|
-
var
|
|
65
|
-
var
|
|
68
|
+
var _logout = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
69
|
+
var requestUrl;
|
|
66
70
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
67
71
|
while (1) switch (_context.prev = _context.next) {
|
|
72
|
+
case 0:
|
|
73
|
+
this.clearStorage();
|
|
74
|
+
requestUrl = this.logoutEndPoint;
|
|
75
|
+
window.location.assign(requestUrl);
|
|
76
|
+
case 3:
|
|
77
|
+
case "end":
|
|
78
|
+
return _context.stop();
|
|
79
|
+
}
|
|
80
|
+
}, _callee, this);
|
|
81
|
+
}));
|
|
82
|
+
function logout() {
|
|
83
|
+
return _logout.apply(this, arguments);
|
|
84
|
+
}
|
|
85
|
+
return logout;
|
|
86
|
+
}()
|
|
87
|
+
}, {
|
|
88
|
+
key: "signInWithRedirect",
|
|
89
|
+
value: function () {
|
|
90
|
+
var _signInWithRedirect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(params) {
|
|
91
|
+
var paramsClone, signinParams, meta, requestUrl;
|
|
92
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
93
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
68
94
|
case 0:
|
|
69
95
|
// we use ONLY code flow with PKCE, so lacks a lot of options
|
|
70
96
|
// available in other OAuth SDKs.
|
|
71
97
|
paramsClone = Object.assign({}, params);
|
|
72
98
|
paramsClone.redirectUri = this.redirectUri;
|
|
73
|
-
|
|
99
|
+
_context2.next = 4;
|
|
74
100
|
return (0, _utils.prepareTokenParams)(paramsClone);
|
|
75
101
|
case 4:
|
|
76
|
-
signinParams =
|
|
102
|
+
signinParams = _context2.sent;
|
|
77
103
|
meta = (0, _utils.createPkceMeta)(signinParams);
|
|
78
104
|
this.transactionManager.save(meta);
|
|
105
|
+
signinParams.referralCode = this.referralCode;
|
|
79
106
|
requestUrl = (0, _endpoints.buildAuthEndpointUrl)(signinParams, this.loginEndPoint);
|
|
80
107
|
window.location.assign(requestUrl);
|
|
81
|
-
case
|
|
108
|
+
case 10:
|
|
82
109
|
case "end":
|
|
83
|
-
return
|
|
110
|
+
return _context2.stop();
|
|
84
111
|
}
|
|
85
|
-
},
|
|
112
|
+
}, _callee2, this);
|
|
86
113
|
}));
|
|
87
114
|
function signInWithRedirect(_x) {
|
|
88
115
|
return _signInWithRedirect.apply(this, arguments);
|
|
@@ -92,38 +119,38 @@ var OCAuthCore = exports.OCAuthCore = /*#__PURE__*/function () {
|
|
|
92
119
|
}, {
|
|
93
120
|
key: "handleLoginRedirect",
|
|
94
121
|
value: function () {
|
|
95
|
-
var _handleLoginRedirect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
122
|
+
var _handleLoginRedirect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
96
123
|
var urlParams, meta, codeVerifier;
|
|
97
|
-
return _regeneratorRuntime().wrap(function
|
|
98
|
-
while (1) switch (
|
|
124
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
125
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
99
126
|
case 0:
|
|
100
127
|
urlParams = (0, _utils.parseUrl)(); // Again we only handle PKCE code flow
|
|
101
128
|
if (!urlParams.code) {
|
|
102
|
-
|
|
129
|
+
_context3.next = 13;
|
|
103
130
|
break;
|
|
104
131
|
}
|
|
105
132
|
meta = this.transactionManager.getTransactionMeta();
|
|
106
133
|
codeVerifier = meta.codeVerifier;
|
|
107
134
|
if (!codeVerifier) {
|
|
108
|
-
|
|
135
|
+
_context3.next = 12;
|
|
109
136
|
break;
|
|
110
137
|
}
|
|
111
|
-
|
|
138
|
+
_context3.next = 7;
|
|
112
139
|
return this.tokenManager.exchangeTokenFromCode(urlParams.code, codeVerifier);
|
|
113
140
|
case 7:
|
|
114
141
|
// clear transaction meta, coz it's completed
|
|
115
142
|
this.transactionManager.clear();
|
|
116
143
|
this.syncAuthInfo();
|
|
117
|
-
return
|
|
144
|
+
return _context3.abrupt("return", this.getAuthState());
|
|
118
145
|
case 12:
|
|
119
146
|
throw new _errors.AuthError('codeVerifier not found, cannot complete flow');
|
|
120
147
|
case 13:
|
|
121
|
-
return
|
|
148
|
+
return _context3.abrupt("return", {});
|
|
122
149
|
case 14:
|
|
123
150
|
case "end":
|
|
124
|
-
return
|
|
151
|
+
return _context3.stop();
|
|
125
152
|
}
|
|
126
|
-
},
|
|
153
|
+
}, _callee3, this);
|
|
127
154
|
}));
|
|
128
155
|
function handleLoginRedirect() {
|
|
129
156
|
return _handleLoginRedirect.apply(this, arguments);
|
|
@@ -187,15 +214,18 @@ var OCAuthLive = exports.OCAuthLive = /*#__PURE__*/function (_OCAuthCore2) {
|
|
|
187
214
|
_classCallCheck(this, OCAuthLive);
|
|
188
215
|
var overrideTokenEndpoint = opts.tokenEndPoint,
|
|
189
216
|
overrideLoginEndpoint = opts.loginEndPoint,
|
|
217
|
+
overrideLogoutEndpoint = opts.logoutEndPoint,
|
|
190
218
|
overridePublicKey = opts.publicKey,
|
|
191
|
-
redirectUri = opts.redirectUri
|
|
219
|
+
redirectUri = opts.redirectUri,
|
|
220
|
+
referralCode = opts.referralCode;
|
|
192
221
|
var tokenEndpoint = overrideTokenEndpoint || 'https://api.login.opencampus.xyz/auth/token';
|
|
193
222
|
var loginEndpoint = overrideLoginEndpoint || 'https://api.login.opencampus.xyz/auth/login';
|
|
223
|
+
var logoutEndpoint = overrideLogoutEndpoint || 'https://api.login.opencampus.xyz/auth/logout';
|
|
194
224
|
var publicKey = overridePublicKey || LIVE_PUBLIC_KEY;
|
|
195
225
|
var storageClass = (0, _StorageManager.getStorageClass)(opts);
|
|
196
226
|
var pkceTransactionManager = new _TransactionManager["default"](storageClass);
|
|
197
227
|
var tokenManager = new _TokenManager["default"](storageClass, tokenEndpoint, publicKey);
|
|
198
|
-
return _callSuper(this, OCAuthLive, [loginEndpoint, redirectUri, pkceTransactionManager, tokenManager]);
|
|
228
|
+
return _callSuper(this, OCAuthLive, [loginEndpoint, redirectUri, pkceTransactionManager, tokenManager, referralCode, logoutEndpoint]);
|
|
199
229
|
}
|
|
200
230
|
_inherits(OCAuthLive, _OCAuthCore2);
|
|
201
231
|
return _createClass(OCAuthLive);
|
|
@@ -206,15 +236,18 @@ var OCAuthSandbox = exports.OCAuthSandbox = /*#__PURE__*/function (_OCAuthCore3)
|
|
|
206
236
|
_classCallCheck(this, OCAuthSandbox);
|
|
207
237
|
var overrideTokenEndpoint = opts.tokenEndPoint,
|
|
208
238
|
overrideLoginEndpoint = opts.loginEndPoint,
|
|
239
|
+
overrideLogoutEndpoint = opts.logoutEndPoint,
|
|
209
240
|
overridePublicKey = opts.publicKey,
|
|
210
|
-
redirectUri = opts.redirectUri
|
|
241
|
+
redirectUri = opts.redirectUri,
|
|
242
|
+
referralCode = opts.referralCode;
|
|
211
243
|
var tokenEndpoint = overrideTokenEndpoint || 'https://api.login.sandbox.opencampus.xyz/auth/token';
|
|
212
244
|
var loginEndpoint = overrideLoginEndpoint || 'https://api.login.sandbox.opencampus.xyz/auth/login';
|
|
245
|
+
var logoutEndpoint = overrideLogoutEndpoint || 'https://api.login.sandbox.opencampus.xyz/auth/logout';
|
|
213
246
|
var publicKey = overridePublicKey || SANDBOX_PUBLIC_KEY;
|
|
214
247
|
var storageClass = (0, _StorageManager.getStorageClass)(opts);
|
|
215
248
|
var pkceTransactionManager = new _TransactionManager["default"](storageClass);
|
|
216
249
|
var tokenManager = new _TokenManager["default"](storageClass, tokenEndpoint, publicKey);
|
|
217
|
-
return _callSuper(this, OCAuthSandbox, [loginEndpoint, redirectUri, pkceTransactionManager, tokenManager]);
|
|
250
|
+
return _callSuper(this, OCAuthSandbox, [loginEndpoint, redirectUri, pkceTransactionManager, tokenManager, referralCode, logoutEndpoint]);
|
|
218
251
|
}
|
|
219
252
|
_inherits(OCAuthSandbox, _OCAuthCore3);
|
|
220
253
|
return _createClass(OCAuthSandbox);
|
|
@@ -28,5 +28,10 @@ var buildAuthEndpointUrl = exports.buildAuthEndpointUrl = function buildAuthEndp
|
|
|
28
28
|
if (signInParams.state !== undefined) {
|
|
29
29
|
loginUrl.searchParams.append('state', signInParams.state);
|
|
30
30
|
}
|
|
31
|
+
|
|
32
|
+
// reference data for register workflow
|
|
33
|
+
if (signInParams.referralCode) {
|
|
34
|
+
loginUrl.searchParams.append('ref', signInParams.referralCode);
|
|
35
|
+
}
|
|
31
36
|
return loginUrl.href;
|
|
32
37
|
};
|
|
@@ -38,13 +38,17 @@ var CookieStorageProvider = exports.CookieStorageProvider = /*#__PURE__*/functio
|
|
|
38
38
|
value: function setItem(key, value) {
|
|
39
39
|
return _jsCookie["default"].set(key, value, {
|
|
40
40
|
expires: 365,
|
|
41
|
+
path: '/',
|
|
41
42
|
domain: this.domain
|
|
42
43
|
});
|
|
43
44
|
}
|
|
44
45
|
}, {
|
|
45
46
|
key: "removeItem",
|
|
46
47
|
value: function removeItem(key) {
|
|
47
|
-
return _jsCookie["default"].remove(key
|
|
48
|
+
return _jsCookie["default"].remove(key, {
|
|
49
|
+
path: '/',
|
|
50
|
+
domain: this.domain
|
|
51
|
+
});
|
|
48
52
|
}
|
|
49
53
|
}]);
|
|
50
54
|
}();
|