@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
|
|
package/dist/ocid-connect-js.js
CHANGED
|
@@ -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: "
|
|
569
|
+
key: "logout",
|
|
566
570
|
value: function () {
|
|
567
|
-
var
|
|
568
|
-
var
|
|
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
|
-
|
|
602
|
+
_context2.next = 4;
|
|
577
603
|
return Object(_utils__WEBPACK_IMPORTED_MODULE_4__["prepareTokenParams"])(paramsClone);
|
|
578
604
|
case 4:
|
|
579
|
-
signinParams =
|
|
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
|
|
611
|
+
case 10:
|
|
585
612
|
case "end":
|
|
586
|
-
return
|
|
613
|
+
return _context2.stop();
|
|
587
614
|
}
|
|
588
|
-
},
|
|
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
|
|
625
|
+
var _handleLoginRedirect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
599
626
|
var urlParams, meta, codeVerifier;
|
|
600
|
-
return _regeneratorRuntime().wrap(function
|
|
601
|
-
while (1) switch (
|
|
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
|
-
|
|
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
|
-
|
|
638
|
+
_context3.next = 12;
|
|
612
639
|
break;
|
|
613
640
|
}
|
|
614
|
-
|
|
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
|
|
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
|
|
651
|
+
return _context3.abrupt("return", {});
|
|
625
652
|
case 14:
|
|
626
653
|
case "end":
|
|
627
|
-
return
|
|
654
|
+
return _context3.stop();
|
|
628
655
|
}
|
|
629
|
-
},
|
|
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
|
|