@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: "signInWithRedirect",
66
+ key: "logout",
65
67
  value: function () {
66
- var _signInWithRedirect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(params) {
67
- var paramsClone, signinParams, meta, requestUrl;
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
- _context.next = 4;
99
+ _context2.next = 4;
76
100
  return (0, _utils.prepareTokenParams)(paramsClone);
77
101
  case 4:
78
- signinParams = _context.sent;
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 _context.stop();
110
+ return _context2.stop();
87
111
  }
88
- }, _callee, this);
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 _callee2() {
122
+ var _handleLoginRedirect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
99
123
  var urlParams, meta, codeVerifier;
100
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
101
- while (1) switch (_context2.prev = _context2.next) {
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
- _context2.next = 13;
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
- _context2.next = 12;
135
+ _context3.next = 12;
112
136
  break;
113
137
  }
114
- _context2.next = 7;
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 _context2.abrupt("return", this.getAuthState());
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 _context2.abrupt("return", {});
148
+ return _context3.abrupt("return", {});
125
149
  case 14:
126
150
  case "end":
127
- return _context2.stop();
151
+ return _context3.stop();
128
152
  }
129
- }, _callee2, this);
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 idToken = this.tokenManager.getIdToken();
149
- var _parseJwt = (0, _utils.parseJwt)(idToken),
150
- edu_username = _parseJwt.edu_username,
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
  }();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opencampus/ocid-connect-js",
3
- "version": "1.1.2",
3
+ "version": "1.2.1",
4
4
  "author": "Animoca Brands",
5
5
  "license": "MIT",
6
6
  "description": "OCID Connector Library",