@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: "signInWithRedirect",
66
+ key: "logout",
63
67
  value: function () {
64
- var _signInWithRedirect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(params) {
65
- var paramsClone, signinParams, meta, requestUrl;
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
- _context.next = 4;
99
+ _context2.next = 4;
74
100
  return (0, _utils.prepareTokenParams)(paramsClone);
75
101
  case 4:
76
- signinParams = _context.sent;
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 9:
108
+ case 10:
82
109
  case "end":
83
- return _context.stop();
110
+ return _context2.stop();
84
111
  }
85
- }, _callee, this);
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 _callee2() {
122
+ var _handleLoginRedirect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
96
123
  var urlParams, meta, codeVerifier;
97
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
98
- while (1) switch (_context2.prev = _context2.next) {
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
- _context2.next = 13;
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
- _context2.next = 12;
135
+ _context3.next = 12;
109
136
  break;
110
137
  }
111
- _context2.next = 7;
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 _context2.abrupt("return", this.getAuthState());
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 _context2.abrupt("return", {});
148
+ return _context3.abrupt("return", {});
122
149
  case 14:
123
150
  case "end":
124
- return _context2.stop();
151
+ return _context3.stop();
125
152
  }
126
- }, _callee2, this);
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
  }();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opencampus/ocid-connect-js",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "author": "Animoca Brands",
5
5
  "license": "MIT",
6
6
  "description": "OCID Connector Library",