@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/README.md CHANGED
@@ -34,6 +34,7 @@ import { OCConnect } from '@opencampus/ocid-connect-js';
34
34
 
35
35
  const opts = {
36
36
  redirectUri: 'http://localhost:3001/redirect',
37
+ referralCode: 'PARTNER6'
37
38
  }
38
39
 
39
40
  return (
@@ -57,6 +58,7 @@ Opts Property
57
58
  | Property | Description |
58
59
  | --- | --- |
59
60
  | redirectUri | URL to return after the login process is completed |
61
+ | referralCode | Unique identifiers assigned to partners for tracking during OCID account's registration. |
60
62
 
61
63
  Setup LoginCallBack to handle flow's result
62
64
 
@@ -176,6 +178,7 @@ export default function RootLayout({
176
178
  }) {
177
179
  const opts = {
178
180
  redirectUri: 'http://localhost:3000/redirect', // Adjust this URL
181
+ referralCode: 'PARTNER6', // Assign partner code
179
182
  };
180
183
 
181
184
  return (
@@ -349,6 +352,7 @@ The login flow adhere with PKCE standard. The following params will be prepared
349
352
  | scope | only support 'openid' at the moment |
350
353
  | code_challenge | adhere with PKCE standard |
351
354
  | code_challenge_method | Only S256 is supported at the moment |
355
+ | ref | Unique identifiers assigned to partners for tracking during user registration |
352
356
 
353
357
  Sample usage to handle login response
354
358
 
@@ -541,18 +541,22 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
541
541
 
542
542
 
543
543
  var OCAuthCore = /*#__PURE__*/function () {
544
- function OCAuthCore(loginEndpoint, redirectUri, transactionManager, tokenManager) {
544
+ function OCAuthCore(loginEndpoint, redirectUri, transactionManager, tokenManager, referralCode, logoutEndPoint) {
545
545
  _classCallCheck(this, OCAuthCore);
546
546
  _defineProperty(this, "tokenManager", void 0);
547
547
  _defineProperty(this, "authInfoManager", void 0);
548
548
  _defineProperty(this, "transactionManager", void 0);
549
549
  _defineProperty(this, "redirectUri", void 0);
550
550
  _defineProperty(this, "loginEndPoint", void 0);
551
+ _defineProperty(this, "logoutEndPoint", void 0);
552
+ _defineProperty(this, "referralCode", void 0);
551
553
  this.transactionManager = transactionManager;
552
554
  this.tokenManager = tokenManager;
553
555
  this.authInfoManager = new _lib_AuthInfoManager__WEBPACK_IMPORTED_MODULE_0__["default"]();
554
556
  this.loginEndPoint = loginEndpoint;
557
+ this.logoutEndPoint = logoutEndPoint;
555
558
  this.redirectUri = redirectUri;
559
+ this.referralCode = referralCode;
556
560
  this.syncAuthInfo();
557
561
  }
558
562
  return _createClass(OCAuthCore, [{
@@ -562,30 +566,53 @@ var OCAuthCore = /*#__PURE__*/function () {
562
566
  this.tokenManager.clear();
563
567
  }
564
568
  }, {
565
- key: "signInWithRedirect",
569
+ key: "logout",
566
570
  value: function () {
567
- var _signInWithRedirect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(params) {
568
- var paramsClone, signinParams, meta, requestUrl;
571
+ var _logout = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
572
+ var requestUrl;
569
573
  return _regeneratorRuntime().wrap(function _callee$(_context) {
570
574
  while (1) switch (_context.prev = _context.next) {
575
+ case 0:
576
+ this.clearStorage();
577
+ requestUrl = this.logoutEndPoint;
578
+ window.location.assign(requestUrl);
579
+ case 3:
580
+ case "end":
581
+ return _context.stop();
582
+ }
583
+ }, _callee, this);
584
+ }));
585
+ function logout() {
586
+ return _logout.apply(this, arguments);
587
+ }
588
+ return logout;
589
+ }()
590
+ }, {
591
+ key: "signInWithRedirect",
592
+ value: function () {
593
+ var _signInWithRedirect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(params) {
594
+ var paramsClone, signinParams, meta, requestUrl;
595
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
596
+ while (1) switch (_context2.prev = _context2.next) {
571
597
  case 0:
572
598
  // we use ONLY code flow with PKCE, so lacks a lot of options
573
599
  // available in other OAuth SDKs.
574
600
  paramsClone = Object.assign({}, params);
575
601
  paramsClone.redirectUri = this.redirectUri;
576
- _context.next = 4;
602
+ _context2.next = 4;
577
603
  return Object(_utils__WEBPACK_IMPORTED_MODULE_4__["prepareTokenParams"])(paramsClone);
578
604
  case 4:
579
- signinParams = _context.sent;
605
+ signinParams = _context2.sent;
580
606
  meta = Object(_utils__WEBPACK_IMPORTED_MODULE_4__["createPkceMeta"])(signinParams);
581
607
  this.transactionManager.save(meta);
608
+ signinParams.referralCode = this.referralCode;
582
609
  requestUrl = Object(_endpoints__WEBPACK_IMPORTED_MODULE_5__["buildAuthEndpointUrl"])(signinParams, this.loginEndPoint);
583
610
  window.location.assign(requestUrl);
584
- case 9:
611
+ case 10:
585
612
  case "end":
586
- return _context.stop();
613
+ return _context2.stop();
587
614
  }
588
- }, _callee, this);
615
+ }, _callee2, this);
589
616
  }));
590
617
  function signInWithRedirect(_x) {
591
618
  return _signInWithRedirect.apply(this, arguments);
@@ -595,38 +622,38 @@ var OCAuthCore = /*#__PURE__*/function () {
595
622
  }, {
596
623
  key: "handleLoginRedirect",
597
624
  value: function () {
598
- var _handleLoginRedirect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
625
+ var _handleLoginRedirect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
599
626
  var urlParams, meta, codeVerifier;
600
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
601
- while (1) switch (_context2.prev = _context2.next) {
627
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
628
+ while (1) switch (_context3.prev = _context3.next) {
602
629
  case 0:
603
630
  urlParams = Object(_utils__WEBPACK_IMPORTED_MODULE_4__["parseUrl"])(); // Again we only handle PKCE code flow
604
631
  if (!urlParams.code) {
605
- _context2.next = 13;
632
+ _context3.next = 13;
606
633
  break;
607
634
  }
608
635
  meta = this.transactionManager.getTransactionMeta();
609
636
  codeVerifier = meta.codeVerifier;
610
637
  if (!codeVerifier) {
611
- _context2.next = 12;
638
+ _context3.next = 12;
612
639
  break;
613
640
  }
614
- _context2.next = 7;
641
+ _context3.next = 7;
615
642
  return this.tokenManager.exchangeTokenFromCode(urlParams.code, codeVerifier);
616
643
  case 7:
617
644
  // clear transaction meta, coz it's completed
618
645
  this.transactionManager.clear();
619
646
  this.syncAuthInfo();
620
- return _context2.abrupt("return", this.getAuthState());
647
+ return _context3.abrupt("return", this.getAuthState());
621
648
  case 12:
622
649
  throw new _utils_errors__WEBPACK_IMPORTED_MODULE_6__["AuthError"]('codeVerifier not found, cannot complete flow');
623
650
  case 13:
624
- return _context2.abrupt("return", {});
651
+ return _context3.abrupt("return", {});
625
652
  case 14:
626
653
  case "end":
627
- return _context2.stop();
654
+ return _context3.stop();
628
655
  }
629
- }, _callee2, this);
656
+ }, _callee3, this);
630
657
  }));
631
658
  function handleLoginRedirect() {
632
659
  return _handleLoginRedirect.apply(this, arguments);
@@ -690,15 +717,18 @@ var OCAuthLive = /*#__PURE__*/function (_OCAuthCore2) {
690
717
  _classCallCheck(this, OCAuthLive);
691
718
  var overrideTokenEndpoint = opts.tokenEndPoint,
692
719
  overrideLoginEndpoint = opts.loginEndPoint,
720
+ overrideLogoutEndpoint = opts.logoutEndPoint,
693
721
  overridePublicKey = opts.publicKey,
694
- redirectUri = opts.redirectUri;
722
+ redirectUri = opts.redirectUri,
723
+ referralCode = opts.referralCode;
695
724
  var tokenEndpoint = overrideTokenEndpoint || 'https://api.login.opencampus.xyz/auth/token';
696
725
  var loginEndpoint = overrideLoginEndpoint || 'https://api.login.opencampus.xyz/auth/login';
726
+ var logoutEndpoint = overrideLogoutEndpoint || 'https://api.login.opencampus.xyz/auth/logout';
697
727
  var publicKey = overridePublicKey || LIVE_PUBLIC_KEY;
698
728
  var storageClass = Object(_lib_StorageManager__WEBPACK_IMPORTED_MODULE_3__["getStorageClass"])(opts);
699
729
  var pkceTransactionManager = new _lib_TransactionManager__WEBPACK_IMPORTED_MODULE_2__["default"](storageClass);
700
730
  var tokenManager = new _lib_TokenManager__WEBPACK_IMPORTED_MODULE_1__["default"](storageClass, tokenEndpoint, publicKey);
701
- return _callSuper(this, OCAuthLive, [loginEndpoint, redirectUri, pkceTransactionManager, tokenManager]);
731
+ return _callSuper(this, OCAuthLive, [loginEndpoint, redirectUri, pkceTransactionManager, tokenManager, referralCode, logoutEndpoint]);
702
732
  }
703
733
  _inherits(OCAuthLive, _OCAuthCore2);
704
734
  return _createClass(OCAuthLive);
@@ -709,15 +739,18 @@ var OCAuthSandbox = /*#__PURE__*/function (_OCAuthCore3) {
709
739
  _classCallCheck(this, OCAuthSandbox);
710
740
  var overrideTokenEndpoint = opts.tokenEndPoint,
711
741
  overrideLoginEndpoint = opts.loginEndPoint,
742
+ overrideLogoutEndpoint = opts.logoutEndPoint,
712
743
  overridePublicKey = opts.publicKey,
713
- redirectUri = opts.redirectUri;
744
+ redirectUri = opts.redirectUri,
745
+ referralCode = opts.referralCode;
714
746
  var tokenEndpoint = overrideTokenEndpoint || 'https://api.login.sandbox.opencampus.xyz/auth/token';
715
747
  var loginEndpoint = overrideLoginEndpoint || 'https://api.login.sandbox.opencampus.xyz/auth/login';
748
+ var logoutEndpoint = overrideLogoutEndpoint || 'https://api.login.sandbox.opencampus.xyz/auth/logout';
716
749
  var publicKey = overridePublicKey || SANDBOX_PUBLIC_KEY;
717
750
  var storageClass = Object(_lib_StorageManager__WEBPACK_IMPORTED_MODULE_3__["getStorageClass"])(opts);
718
751
  var pkceTransactionManager = new _lib_TransactionManager__WEBPACK_IMPORTED_MODULE_2__["default"](storageClass);
719
752
  var tokenManager = new _lib_TokenManager__WEBPACK_IMPORTED_MODULE_1__["default"](storageClass, tokenEndpoint, publicKey);
720
- return _callSuper(this, OCAuthSandbox, [loginEndpoint, redirectUri, pkceTransactionManager, tokenManager]);
753
+ return _callSuper(this, OCAuthSandbox, [loginEndpoint, redirectUri, pkceTransactionManager, tokenManager, referralCode, logoutEndpoint]);
721
754
  }
722
755
  _inherits(OCAuthSandbox, _OCAuthCore3);
723
756
  return _createClass(OCAuthSandbox);
@@ -1691,13 +1724,17 @@ var CookieStorageProvider = /*#__PURE__*/function () {
1691
1724
  value: function setItem(key, value) {
1692
1725
  return js_cookie__WEBPACK_IMPORTED_MODULE_0___default.a.set(key, value, {
1693
1726
  expires: 365,
1727
+ path: '/',
1694
1728
  domain: this.domain
1695
1729
  });
1696
1730
  }
1697
1731
  }, {
1698
1732
  key: "removeItem",
1699
1733
  value: function removeItem(key) {
1700
- return js_cookie__WEBPACK_IMPORTED_MODULE_0___default.a.remove(key);
1734
+ return js_cookie__WEBPACK_IMPORTED_MODULE_0___default.a.remove(key, {
1735
+ path: '/',
1736
+ domain: this.domain
1737
+ });
1701
1738
  }
1702
1739
  }]);
1703
1740
  }();
@@ -1901,6 +1938,11 @@ var buildAuthEndpointUrl = function buildAuthEndpointUrl(signInParams, loginEndP
1901
1938
  if (signInParams.state !== undefined) {
1902
1939
  loginUrl.searchParams.append('state', signInParams.state);
1903
1940
  }
1941
+
1942
+ // reference data for register workflow
1943
+ if (signInParams.referralCode) {
1944
+ loginUrl.searchParams.append('ref', signInParams.referralCode);
1945
+ }
1904
1946
  return loginUrl.href;
1905
1947
  };
1906
1948