@stokr/components-library 2.1.2-beta.1 β 2.1.2
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.
|
@@ -42,7 +42,8 @@ var Disable2FA = function Disable2FA(_ref) {
|
|
|
42
42
|
onRequiresRecentLoginError = _ref.onRequiresRecentLoginError,
|
|
43
43
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
44
44
|
var _useContext = (0, _react.useContext)(_AuthContext.AuthContext),
|
|
45
|
-
unenrollUser2FA = _useContext.unenrollUser2FA
|
|
45
|
+
unenrollUser2FA = _useContext.unenrollUser2FA,
|
|
46
|
+
refreshIdToken = _useContext.refreshIdToken;
|
|
46
47
|
var _useState = (0, _react.useState)({
|
|
47
48
|
confirmDisable: false,
|
|
48
49
|
sucess: false
|
|
@@ -52,51 +53,72 @@ var Disable2FA = function Disable2FA(_ref) {
|
|
|
52
53
|
setIsModalOpen = _useState2[1];
|
|
53
54
|
(0, _react.useEffect)(function () {
|
|
54
55
|
if (showFlow) {
|
|
56
|
+
refreshToken();
|
|
55
57
|
setIsModalOpen(_objectSpread(_objectSpread({}, isModalOpen), {}, {
|
|
56
58
|
confirmDisable: true
|
|
57
59
|
}));
|
|
58
60
|
}
|
|
59
61
|
}, [props.showFlow]);
|
|
60
|
-
var
|
|
62
|
+
var refreshToken = /*#__PURE__*/function () {
|
|
61
63
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
62
64
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
63
65
|
while (1) switch (_context.prev = _context.next) {
|
|
64
66
|
case 0:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
try {
|
|
68
|
+
refreshIdToken();
|
|
69
|
+
} catch (error) {
|
|
70
|
+
console.log('π ~ error in refreshToken:', error);
|
|
71
|
+
}
|
|
72
|
+
case 1:
|
|
73
|
+
case "end":
|
|
74
|
+
return _context.stop();
|
|
75
|
+
}
|
|
76
|
+
}, _callee);
|
|
77
|
+
}));
|
|
78
|
+
return function refreshToken() {
|
|
79
|
+
return _ref2.apply(this, arguments);
|
|
80
|
+
};
|
|
81
|
+
}();
|
|
82
|
+
var handleDisableClick = /*#__PURE__*/function () {
|
|
83
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
84
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
85
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
86
|
+
case 0:
|
|
87
|
+
_context2.prev = 0;
|
|
88
|
+
_context2.next = 3;
|
|
67
89
|
return unenrollUser2FA();
|
|
68
90
|
case 3:
|
|
69
91
|
setIsModalOpen(_objectSpread(_objectSpread({}, isModalOpen), {}, {
|
|
70
92
|
sucess: true
|
|
71
93
|
}));
|
|
72
|
-
|
|
73
|
-
|
|
94
|
+
_context2.prev = 4;
|
|
95
|
+
_context2.next = 7;
|
|
74
96
|
return (0, _fetchData.default)('auth/disable-2fa-email');
|
|
75
97
|
case 7:
|
|
76
|
-
|
|
98
|
+
_context2.next = 12;
|
|
77
99
|
break;
|
|
78
100
|
case 9:
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
console.log('π ~ error while sending email:',
|
|
101
|
+
_context2.prev = 9;
|
|
102
|
+
_context2.t0 = _context2["catch"](4);
|
|
103
|
+
console.log('π ~ error while sending email:', _context2.t0);
|
|
82
104
|
case 12:
|
|
83
|
-
|
|
105
|
+
_context2.next = 18;
|
|
84
106
|
break;
|
|
85
107
|
case 14:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
console.log('π ~ file: disable-2fa-flow.js ~ error:',
|
|
89
|
-
if (
|
|
108
|
+
_context2.prev = 14;
|
|
109
|
+
_context2.t1 = _context2["catch"](0);
|
|
110
|
+
console.log('π ~ file: disable-2fa-flow.js ~ error:', _context2.t1);
|
|
111
|
+
if (_context2.t1.code === 'auth/requires-recent-login') {
|
|
90
112
|
onRequiresRecentLoginError && onRequiresRecentLoginError();
|
|
91
113
|
}
|
|
92
114
|
case 18:
|
|
93
115
|
case "end":
|
|
94
|
-
return
|
|
116
|
+
return _context2.stop();
|
|
95
117
|
}
|
|
96
|
-
},
|
|
118
|
+
}, _callee2, null, [[0, 14], [4, 9]]);
|
|
97
119
|
}));
|
|
98
120
|
return function handleDisableClick() {
|
|
99
|
-
return
|
|
121
|
+
return _ref3.apply(this, arguments);
|
|
100
122
|
};
|
|
101
123
|
}();
|
|
102
124
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Modal.Modal, {
|
|
@@ -37,13 +37,12 @@ var Enable2FAFlow = function Enable2FAFlow(_ref) {
|
|
|
37
37
|
onRequiresRecentLoginError = _ref.onRequiresRecentLoginError;
|
|
38
38
|
var _useContext = (0, _react.useContext)(_AuthContext.AuthContext),
|
|
39
39
|
user = _useContext.user,
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
enrollUserToTotp = _useContext.enrollUserToTotp,
|
|
41
|
+
refreshIdToken = _useContext.refreshIdToken;
|
|
42
42
|
var _useState = (0, _react.useState)(false),
|
|
43
43
|
_useState2 = _slicedToArray(_useState, 2),
|
|
44
44
|
showSuccess = _useState2[0],
|
|
45
45
|
setshowSuccess = _useState2[1];
|
|
46
|
-
//const [totpData, settotpData] = useState(totpData)
|
|
47
46
|
var _useState3 = (0, _react.useState)({
|
|
48
47
|
popup: undefined,
|
|
49
48
|
message: undefined
|
|
@@ -51,87 +50,92 @@ var Enable2FAFlow = function Enable2FAFlow(_ref) {
|
|
|
51
50
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
52
51
|
popupError = _useState4[0],
|
|
53
52
|
setpopupError = _useState4[1];
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
// })
|
|
62
|
-
// .catch((error) => {
|
|
63
|
-
// console.log(error)
|
|
64
|
-
// if (
|
|
65
|
-
// error.code === 'auth/requires-recent-login' ||
|
|
66
|
-
// error.code === 'auth/unsupported-first-factor'
|
|
67
|
-
// ) {
|
|
68
|
-
// onRequiresRecentLoginError && onRequiresRecentLoginError()
|
|
69
|
-
// }
|
|
70
|
-
// })
|
|
71
|
-
// }
|
|
72
|
-
// }, [user])
|
|
73
|
-
|
|
74
|
-
var onSubmit = /*#__PURE__*/function () {
|
|
75
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(data) {
|
|
53
|
+
(0, _react.useEffect)(function () {
|
|
54
|
+
if (user) {
|
|
55
|
+
refreshToken();
|
|
56
|
+
}
|
|
57
|
+
}, [user]);
|
|
58
|
+
var refreshToken = /*#__PURE__*/function () {
|
|
59
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
76
60
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
77
61
|
while (1) switch (_context.prev = _context.next) {
|
|
62
|
+
case 0:
|
|
63
|
+
try {
|
|
64
|
+
refreshIdToken();
|
|
65
|
+
} catch (error) {
|
|
66
|
+
console.log('π ~ error in refreshToken:', error);
|
|
67
|
+
}
|
|
68
|
+
case 1:
|
|
69
|
+
case "end":
|
|
70
|
+
return _context.stop();
|
|
71
|
+
}
|
|
72
|
+
}, _callee);
|
|
73
|
+
}));
|
|
74
|
+
return function refreshToken() {
|
|
75
|
+
return _ref2.apply(this, arguments);
|
|
76
|
+
};
|
|
77
|
+
}();
|
|
78
|
+
var onSubmit = /*#__PURE__*/function () {
|
|
79
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(data) {
|
|
80
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
81
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
78
82
|
case 0:
|
|
79
83
|
if (!(!user || !data)) {
|
|
80
|
-
|
|
84
|
+
_context2.next = 2;
|
|
81
85
|
break;
|
|
82
86
|
}
|
|
83
|
-
return
|
|
87
|
+
return _context2.abrupt("return", console.log('not enough data'));
|
|
84
88
|
case 2:
|
|
85
|
-
|
|
86
|
-
|
|
89
|
+
_context2.prev = 2;
|
|
90
|
+
_context2.next = 5;
|
|
87
91
|
return enrollUserToTotp(user, totpData.totpSecret, data.otpInput, user.displayName);
|
|
88
92
|
case 5:
|
|
89
93
|
setshowSuccess(true);
|
|
90
|
-
|
|
91
|
-
|
|
94
|
+
_context2.prev = 6;
|
|
95
|
+
_context2.next = 9;
|
|
92
96
|
return (0, _fetchData.default)('auth/enable-2fa-email');
|
|
93
97
|
case 9:
|
|
94
|
-
|
|
98
|
+
_context2.next = 14;
|
|
95
99
|
break;
|
|
96
100
|
case 11:
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
console.log('π ~ error while sending email:',
|
|
101
|
+
_context2.prev = 11;
|
|
102
|
+
_context2.t0 = _context2["catch"](6);
|
|
103
|
+
console.log('π ~ error while sending email:', _context2.t0);
|
|
100
104
|
case 14:
|
|
101
|
-
|
|
105
|
+
_context2.next = 25;
|
|
102
106
|
break;
|
|
103
107
|
case 16:
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
console.log('π ~ file: enable-2fa-flow.js:60 ~ error:',
|
|
107
|
-
if (!(
|
|
108
|
-
|
|
108
|
+
_context2.prev = 16;
|
|
109
|
+
_context2.t1 = _context2["catch"](2);
|
|
110
|
+
console.log('π ~ file: enable-2fa-flow.js:60 ~ error:', _context2.t1);
|
|
111
|
+
if (!(_context2.t1.code === 'auth/invalid-verification-code')) {
|
|
112
|
+
_context2.next = 24;
|
|
109
113
|
break;
|
|
110
114
|
}
|
|
111
115
|
setpopupError({
|
|
112
116
|
popup: 'enter2fa',
|
|
113
117
|
message: 'Thatβs not the right 2FA code. Try again'
|
|
114
118
|
});
|
|
115
|
-
return
|
|
119
|
+
return _context2.abrupt("return", {
|
|
116
120
|
otpInput: 'Invalid code'
|
|
117
121
|
});
|
|
118
122
|
case 24:
|
|
119
|
-
if (
|
|
123
|
+
if (_context2.t1.code === 'auth/requires-recent-login') {
|
|
120
124
|
onRequiresRecentLoginError && onRequiresRecentLoginError();
|
|
121
125
|
} else {
|
|
122
126
|
setpopupError({
|
|
123
127
|
popup: 'enter2fa',
|
|
124
|
-
message: "".concat(
|
|
128
|
+
message: "".concat(_context2.t1 !== null && _context2.t1 !== void 0 && _context2.t1.message ? _context2.t1 === null || _context2.t1 === void 0 ? void 0 : _context2.t1.message : 'Something went wrong. Try again?')
|
|
125
129
|
});
|
|
126
130
|
}
|
|
127
131
|
case 25:
|
|
128
132
|
case "end":
|
|
129
|
-
return
|
|
133
|
+
return _context2.stop();
|
|
130
134
|
}
|
|
131
|
-
},
|
|
135
|
+
}, _callee2, null, [[2, 16], [6, 11]]);
|
|
132
136
|
}));
|
|
133
137
|
return function onSubmit(_x) {
|
|
134
|
-
return
|
|
138
|
+
return _ref3.apply(this, arguments);
|
|
135
139
|
};
|
|
136
140
|
}();
|
|
137
141
|
var onBackButtonClick = function onBackButtonClick(stepController, prevStepIndex) {
|
|
@@ -97,31 +97,25 @@ var Main2FAFlow = function Main2FAFlow(_ref) {
|
|
|
97
97
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
98
98
|
while (1) switch (_context.prev = _context.next) {
|
|
99
99
|
case 0:
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
_context.prev = 1;
|
|
105
|
-
_context.next = 4;
|
|
100
|
+
_context.prev = 0;
|
|
101
|
+
_context.next = 3;
|
|
106
102
|
return generateTotpSecret(user);
|
|
107
|
-
case
|
|
103
|
+
case 3:
|
|
108
104
|
response = _context.sent;
|
|
109
|
-
console.log('π ~ response:', response);
|
|
110
105
|
settotpData(response);
|
|
111
|
-
_context.next =
|
|
106
|
+
_context.next = 10;
|
|
112
107
|
break;
|
|
113
|
-
case
|
|
114
|
-
_context.prev =
|
|
115
|
-
_context.t0 = _context["catch"](
|
|
108
|
+
case 7:
|
|
109
|
+
_context.prev = 7;
|
|
110
|
+
_context.t0 = _context["catch"](0);
|
|
116
111
|
if (_context.t0.code === 'auth/requires-recent-login' || _context.t0.code === 'auth/unsupported-first-factor') {
|
|
117
112
|
setisLoginRequired(true);
|
|
118
|
-
// onRequiresRecentLoginError && onRequiresRecentLoginError()
|
|
119
113
|
}
|
|
120
|
-
case
|
|
114
|
+
case 10:
|
|
121
115
|
case "end":
|
|
122
116
|
return _context.stop();
|
|
123
117
|
}
|
|
124
|
-
}, _callee, null, [[
|
|
118
|
+
}, _callee, null, [[0, 7]]);
|
|
125
119
|
}));
|
|
126
120
|
return function generateTotp() {
|
|
127
121
|
return _ref2.apply(this, arguments);
|
|
@@ -168,11 +162,11 @@ var Main2FAFlow = function Main2FAFlow(_ref) {
|
|
|
168
162
|
};
|
|
169
163
|
}();
|
|
170
164
|
var onRequiresRecentLoginErrorHandler = function onRequiresRecentLoginErrorHandler() {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
165
|
+
setIsFlowOpen({
|
|
166
|
+
requiresRecentLogin: true,
|
|
167
|
+
enable2fa: false,
|
|
168
|
+
disable2fa: false
|
|
169
|
+
});
|
|
176
170
|
onRequiresRecentLoginError && onRequiresRecentLoginError();
|
|
177
171
|
};
|
|
178
172
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ComponentWrapper.default, {
|
|
@@ -198,7 +192,8 @@ var Main2FAFlow = function Main2FAFlow(_ref) {
|
|
|
198
192
|
margin: 0
|
|
199
193
|
},
|
|
200
194
|
handleChange: function handleChange(value) {
|
|
201
|
-
if
|
|
195
|
+
//log in again is only if you try to set up 2fa, not disable it
|
|
196
|
+
if (isLoginRequired && value === 'enabled') {
|
|
202
197
|
setIsFlowOpen({
|
|
203
198
|
requiresRecentLogin: true,
|
|
204
199
|
enable2fa: false,
|
package/dist/context/Auth.js
CHANGED
|
@@ -153,6 +153,19 @@ var Auth = /*#__PURE__*/function () {
|
|
|
153
153
|
});
|
|
154
154
|
});
|
|
155
155
|
}
|
|
156
|
+
}, {
|
|
157
|
+
key: "refreshIdToken",
|
|
158
|
+
value: function refreshIdToken() {
|
|
159
|
+
return new Promise(function (resolve, reject) {
|
|
160
|
+
var user = _firebaseConfig.auth.currentUser;
|
|
161
|
+
if (!user) reject('User not available');
|
|
162
|
+
user.getIdToken(true).then(function (idToken) {
|
|
163
|
+
resolve(idToken);
|
|
164
|
+
}).catch(function (error) {
|
|
165
|
+
reject(error);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
}
|
|
156
169
|
}, {
|
|
157
170
|
key: "signInWithToken",
|
|
158
171
|
value: function signInWithToken(token) {
|
|
@@ -1011,7 +1011,8 @@ var AuthProviderClass = /*#__PURE__*/function (_Component) {
|
|
|
1011
1011
|
updateFirebaseUser: _Auth.default.updateFirebaseUser,
|
|
1012
1012
|
handleResetPassword: this.handleResetPassword,
|
|
1013
1013
|
handleVerifyEmail: this.handleVerifyEmail,
|
|
1014
|
-
setUser: this.setUser
|
|
1014
|
+
setUser: this.setUser,
|
|
1015
|
+
refreshIdToken: _Auth.default.refreshIdToken
|
|
1015
1016
|
})
|
|
1016
1017
|
}, children);
|
|
1017
1018
|
}
|