@opencampus/ocid-connect-js 1.1.2 → 1.2.1
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,20 @@ 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, referralCode) {
|
|
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);
|
|
48
49
|
_defineProperty(this, "referralCode", void 0);
|
|
49
50
|
this.transactionManager = transactionManager;
|
|
50
51
|
this.tokenManager = tokenManager;
|
|
51
52
|
this.authInfoManager = new _AuthInfoManager["default"]();
|
|
52
53
|
this.loginEndPoint = loginEndpoint;
|
|
54
|
+
this.logoutEndPoint = logoutEndPoint;
|
|
53
55
|
this.redirectUri = redirectUri;
|
|
54
56
|
this.referralCode = referralCode;
|
|
55
57
|
this.syncAuthInfo();
|
|
@@ -61,21 +63,43 @@ var OCAuthCore = exports.OCAuthCore = /*#__PURE__*/function () {
|
|
|
61
63
|
this.tokenManager.clear();
|
|
62
64
|
}
|
|
63
65
|
}, {
|
|
64
|
-
key: "
|
|
66
|
+
key: "logout",
|
|
65
67
|
value: function () {
|
|
66
|
-
var
|
|
67
|
-
var
|
|
68
|
+
var _logout = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
69
|
+
var requestUrl;
|
|
68
70
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
69
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) {
|
|
70
94
|
case 0:
|
|
71
95
|
// we use ONLY code flow with PKCE, so lacks a lot of options
|
|
72
96
|
// available in other OAuth SDKs.
|
|
73
97
|
paramsClone = Object.assign({}, params);
|
|
74
98
|
paramsClone.redirectUri = this.redirectUri;
|
|
75
|
-
|
|
99
|
+
_context2.next = 4;
|
|
76
100
|
return (0, _utils.prepareTokenParams)(paramsClone);
|
|
77
101
|
case 4:
|
|
78
|
-
signinParams =
|
|
102
|
+
signinParams = _context2.sent;
|
|
79
103
|
meta = (0, _utils.createPkceMeta)(signinParams);
|
|
80
104
|
this.transactionManager.save(meta);
|
|
81
105
|
signinParams.referralCode = this.referralCode;
|
|
@@ -83,9 +107,9 @@ var OCAuthCore = exports.OCAuthCore = /*#__PURE__*/function () {
|
|
|
83
107
|
window.location.assign(requestUrl);
|
|
84
108
|
case 10:
|
|
85
109
|
case "end":
|
|
86
|
-
return
|
|
110
|
+
return _context2.stop();
|
|
87
111
|
}
|
|
88
|
-
},
|
|
112
|
+
}, _callee2, this);
|
|
89
113
|
}));
|
|
90
114
|
function signInWithRedirect(_x) {
|
|
91
115
|
return _signInWithRedirect.apply(this, arguments);
|
|
@@ -95,38 +119,38 @@ var OCAuthCore = exports.OCAuthCore = /*#__PURE__*/function () {
|
|
|
95
119
|
}, {
|
|
96
120
|
key: "handleLoginRedirect",
|
|
97
121
|
value: function () {
|
|
98
|
-
var _handleLoginRedirect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
122
|
+
var _handleLoginRedirect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
99
123
|
var urlParams, meta, codeVerifier;
|
|
100
|
-
return _regeneratorRuntime().wrap(function
|
|
101
|
-
while (1) switch (
|
|
124
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
125
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
102
126
|
case 0:
|
|
103
127
|
urlParams = (0, _utils.parseUrl)(); // Again we only handle PKCE code flow
|
|
104
128
|
if (!urlParams.code) {
|
|
105
|
-
|
|
129
|
+
_context3.next = 13;
|
|
106
130
|
break;
|
|
107
131
|
}
|
|
108
132
|
meta = this.transactionManager.getTransactionMeta();
|
|
109
133
|
codeVerifier = meta.codeVerifier;
|
|
110
134
|
if (!codeVerifier) {
|
|
111
|
-
|
|
135
|
+
_context3.next = 12;
|
|
112
136
|
break;
|
|
113
137
|
}
|
|
114
|
-
|
|
138
|
+
_context3.next = 7;
|
|
115
139
|
return this.tokenManager.exchangeTokenFromCode(urlParams.code, codeVerifier);
|
|
116
140
|
case 7:
|
|
117
141
|
// clear transaction meta, coz it's completed
|
|
118
142
|
this.transactionManager.clear();
|
|
119
143
|
this.syncAuthInfo();
|
|
120
|
-
return
|
|
144
|
+
return _context3.abrupt("return", this.getAuthState());
|
|
121
145
|
case 12:
|
|
122
146
|
throw new _errors.AuthError('codeVerifier not found, cannot complete flow');
|
|
123
147
|
case 13:
|
|
124
|
-
return
|
|
148
|
+
return _context3.abrupt("return", {});
|
|
125
149
|
case 14:
|
|
126
150
|
case "end":
|
|
127
|
-
return
|
|
151
|
+
return _context3.stop();
|
|
128
152
|
}
|
|
129
|
-
},
|
|
153
|
+
}, _callee3, this);
|
|
130
154
|
}));
|
|
131
155
|
function handleLoginRedirect() {
|
|
132
156
|
return _handleLoginRedirect.apply(this, arguments);
|
|
@@ -145,10 +169,9 @@ var OCAuthCore = exports.OCAuthCore = /*#__PURE__*/function () {
|
|
|
145
169
|
if (this.tokenManager.hasExpired()) {
|
|
146
170
|
this.authInfoManager.clear();
|
|
147
171
|
} else {
|
|
148
|
-
var
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
eth_address = _parseJwt.eth_address;
|
|
172
|
+
var _this$getParsedIdToke = this.getParsedIdToken(),
|
|
173
|
+
edu_username = _this$getParsedIdToke.edu_username,
|
|
174
|
+
eth_address = _this$getParsedIdToke.eth_address;
|
|
152
175
|
this.authInfoManager.setIdInfo({
|
|
153
176
|
edu_username: edu_username,
|
|
154
177
|
eth_address: eth_address
|
|
@@ -180,6 +203,26 @@ var OCAuthCore = exports.OCAuthCore = /*#__PURE__*/function () {
|
|
|
180
203
|
value: function getAccessToken() {
|
|
181
204
|
return this.tokenManager.getAccessToken();
|
|
182
205
|
}
|
|
206
|
+
}, {
|
|
207
|
+
key: "getParsedIdToken",
|
|
208
|
+
value: function getParsedIdToken() {
|
|
209
|
+
// return all info in id token
|
|
210
|
+
var idToken = this.tokenManager.getIdToken();
|
|
211
|
+
if (idToken) {
|
|
212
|
+
return (0, _utils.parseJwt)(idToken);
|
|
213
|
+
}
|
|
214
|
+
return {};
|
|
215
|
+
}
|
|
216
|
+
}, {
|
|
217
|
+
key: "getParsedAccessToken",
|
|
218
|
+
value: function getParsedAccessToken() {
|
|
219
|
+
// return all info in access token
|
|
220
|
+
var accessToken = this.tokenManager.getAccessToken();
|
|
221
|
+
if (accessToken) {
|
|
222
|
+
return (0, _utils.parseJwt)(accessToken);
|
|
223
|
+
}
|
|
224
|
+
return {};
|
|
225
|
+
}
|
|
183
226
|
}]);
|
|
184
227
|
}();
|
|
185
228
|
var LIVE_PUBLIC_KEY = 'MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEBIDHtLbgVM76SXZ4iuIjuO+ERQPnVpJzagOsZdYxFG3ZJmvfdpr/Z29SLUbdZWafrOlAVlKe1Ovf/tcH671tTw==';
|
|
@@ -190,16 +233,18 @@ var OCAuthLive = exports.OCAuthLive = /*#__PURE__*/function (_OCAuthCore2) {
|
|
|
190
233
|
_classCallCheck(this, OCAuthLive);
|
|
191
234
|
var overrideTokenEndpoint = opts.tokenEndPoint,
|
|
192
235
|
overrideLoginEndpoint = opts.loginEndPoint,
|
|
236
|
+
overrideLogoutEndpoint = opts.logoutEndPoint,
|
|
193
237
|
overridePublicKey = opts.publicKey,
|
|
194
238
|
redirectUri = opts.redirectUri,
|
|
195
239
|
referralCode = opts.referralCode;
|
|
196
240
|
var tokenEndpoint = overrideTokenEndpoint || 'https://api.login.opencampus.xyz/auth/token';
|
|
197
241
|
var loginEndpoint = overrideLoginEndpoint || 'https://api.login.opencampus.xyz/auth/login';
|
|
242
|
+
var logoutEndpoint = overrideLogoutEndpoint || 'https://api.login.opencampus.xyz/auth/logout';
|
|
198
243
|
var publicKey = overridePublicKey || LIVE_PUBLIC_KEY;
|
|
199
244
|
var storageClass = (0, _StorageManager.getStorageClass)(opts);
|
|
200
245
|
var pkceTransactionManager = new _TransactionManager["default"](storageClass);
|
|
201
246
|
var tokenManager = new _TokenManager["default"](storageClass, tokenEndpoint, publicKey);
|
|
202
|
-
return _callSuper(this, OCAuthLive, [loginEndpoint, redirectUri, pkceTransactionManager, tokenManager, referralCode]);
|
|
247
|
+
return _callSuper(this, OCAuthLive, [loginEndpoint, redirectUri, pkceTransactionManager, tokenManager, referralCode, logoutEndpoint]);
|
|
203
248
|
}
|
|
204
249
|
_inherits(OCAuthLive, _OCAuthCore2);
|
|
205
250
|
return _createClass(OCAuthLive);
|
|
@@ -210,16 +255,18 @@ var OCAuthSandbox = exports.OCAuthSandbox = /*#__PURE__*/function (_OCAuthCore3)
|
|
|
210
255
|
_classCallCheck(this, OCAuthSandbox);
|
|
211
256
|
var overrideTokenEndpoint = opts.tokenEndPoint,
|
|
212
257
|
overrideLoginEndpoint = opts.loginEndPoint,
|
|
258
|
+
overrideLogoutEndpoint = opts.logoutEndPoint,
|
|
213
259
|
overridePublicKey = opts.publicKey,
|
|
214
260
|
redirectUri = opts.redirectUri,
|
|
215
261
|
referralCode = opts.referralCode;
|
|
216
262
|
var tokenEndpoint = overrideTokenEndpoint || 'https://api.login.sandbox.opencampus.xyz/auth/token';
|
|
217
263
|
var loginEndpoint = overrideLoginEndpoint || 'https://api.login.sandbox.opencampus.xyz/auth/login';
|
|
264
|
+
var logoutEndpoint = overrideLogoutEndpoint || 'https://api.login.sandbox.opencampus.xyz/auth/logout';
|
|
218
265
|
var publicKey = overridePublicKey || SANDBOX_PUBLIC_KEY;
|
|
219
266
|
var storageClass = (0, _StorageManager.getStorageClass)(opts);
|
|
220
267
|
var pkceTransactionManager = new _TransactionManager["default"](storageClass);
|
|
221
268
|
var tokenManager = new _TokenManager["default"](storageClass, tokenEndpoint, publicKey);
|
|
222
|
-
return _callSuper(this, OCAuthSandbox, [loginEndpoint, redirectUri, pkceTransactionManager, tokenManager, referralCode]);
|
|
269
|
+
return _callSuper(this, OCAuthSandbox, [loginEndpoint, redirectUri, pkceTransactionManager, tokenManager, referralCode, logoutEndpoint]);
|
|
223
270
|
}
|
|
224
271
|
_inherits(OCAuthSandbox, _OCAuthCore3);
|
|
225
272
|
return _createClass(OCAuthSandbox);
|
|
@@ -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
|
}();
|