Skip to content

Commit 0080bc3

Browse files
committed
fix verification
1 parent dab4353 commit 0080bc3

File tree

5 files changed

+92
-112
lines changed

5 files changed

+92
-112
lines changed

package-lock.json

Lines changed: 1 addition & 37 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@
9595
"node-cache": "^5.1.2",
9696
"node-forge": "^0.7.5",
9797
"nuka-carousel": "^4.5.3",
98-
"oidc-client": "^1.11.5",
9998
"postcss": "^6.0.23",
10099
"prop-types": "^15.6.2",
101100
"qs": "^6.5.2",

src/shared/components/Settings/Account/Security/Modal/index.jsx

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import CloseButton from 'assets/images/account/security/green-close.svg';
66
import './style.scss';
77

88
export default function DiceModal({
9-
showTools, children, onCancel, leftButtonName, leftButtonDisabled, leftButtonClick,
10-
rightButtonName, rightButtonDisabled, rightButtonClick,
9+
children, onCancel, leftButtonName, leftButtonDisabled, leftButtonClick,
10+
rightButtonName, rightButtonDisabled, rightButtonClick, rightButtonHide,
1111
}) {
1212
useEffect(() => {
1313
document.body.style.overflow = 'hidden';
@@ -21,54 +21,53 @@ export default function DiceModal({
2121
styleName="container"
2222
onWheel={event => event.stopPropagation()}
2323
>
24-
{showTools ? (
25-
<><div styleName="header">
26-
<div styleName="icon-wrapper">
27-
<img src={DiceImage} alt="diceid" />
28-
</div>
29-
<div styleName="title">DICE ID authenticator setup </div>
30-
<CloseButton onClick={onCancel} styleName="close-button" />
31-
</div><div styleName="divider" /><div styleName="body">
32-
{children}
33-
</div><div styleName="divider" /><div styleName="footer">
34-
<div
35-
styleName={`left-button ${leftButtonDisabled ? 'disabled' : ''}`}
36-
onClick={leftButtonClick}
37-
role="button"
38-
tabIndex={0}
39-
onKeyDown={leftButtonClick}
40-
>{leftButtonName}
41-
</div>
42-
<div
43-
styleName={`right-button ${rightButtonDisabled ? 'disabled' : ''}`}
44-
onClick={rightButtonClick}
45-
role="button"
46-
tabIndex={0}
47-
onKeyDown={rightButtonClick}
48-
>{rightButtonName}
49-
</div>
50-
</div></>
51-
)
52-
: (
24+
<div styleName="header">
25+
<div styleName="icon-wrapper">
26+
<img src={DiceImage} alt="diceid" />
27+
</div>
28+
<div styleName="title">DICE ID authenticator setup </div>
29+
<CloseButton onClick={onCancel} styleName="close-button" />
30+
</div>
31+
<div styleName="divider" />
32+
<div styleName="body">
5333
{children}
54-
)}
34+
</div>
35+
<div styleName="divider" />
36+
<div styleName="footer">
37+
<div
38+
styleName={`left-button ${leftButtonDisabled ? 'disabled' : ''}`}
39+
onClick={leftButtonClick}
40+
role="button"
41+
tabIndex={0}
42+
onKeyDown={leftButtonClick}
43+
>
44+
{leftButtonName}
45+
</div>
46+
{!rightButtonHide && (
47+
<div
48+
styleName={`right-button ${rightButtonDisabled ? 'disabled' : ''}`}
49+
onClick={rightButtonClick}
50+
role="button"
51+
tabIndex={0}
52+
onKeyDown={rightButtonClick}
53+
>
54+
{rightButtonName}
55+
</div>
56+
)}
57+
</div>
5558
</div>
56-
<div
57-
styleName="overlay"
58-
/>
59+
<div styleName="overlay" />
5960
</React.Fragment>
6061
)
6162
);
6263
}
6364
DiceModal.defaultProps = {
64-
showTools: true,
6565
children: null,
6666
leftButtonDisabled: false,
6767
rightButtonDisabled: false,
68-
68+
rightButtonHide: false,
6969
};
7070
DiceModal.propTypes = {
71-
showTools: PT.bool,
7271
children: PT.node,
7372
onCancel: PT.func.isRequired,
7473
leftButtonName: PT.string.isRequired,
@@ -77,4 +76,5 @@ DiceModal.propTypes = {
7776
rightButtonName: PT.string.isRequired,
7877
rightButtonDisabled: PT.bool,
7978
rightButtonClick: PT.func.isRequired,
79+
rightButtonHide: PT.bool,
8080
};
Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
1-
import { useEffect, useCallback } from 'react';
2-
import PT from 'prop-types';
3-
4-
export default function VerificationListener({ event, callback, source }) {
5-
const messageHandler = useCallback((e) => {
6-
if (e.source.indexOf(source) !== -1) {
7-
callback(e.data);
8-
}
9-
}, [source])
10-
11-
useEffect(() => {
12-
window.addEventListener(event, messageHandler);
13-
return () => window.removeEventListener(event, messageHandler);
14-
}, [event, messageHandler]);
15-
16-
return false;
17-
}
18-
19-
DiceModal.propTypes = {
20-
event: PT.string.isRequired,
21-
callback: PT.func.isRequired,
22-
source: PT.string.isRequired,
23-
};
1+
import { useEffect, useCallback } from 'react';
2+
import PT from 'prop-types';
3+
4+
export default function VerificationListener({
5+
event, callback, origin, type,
6+
}) {
7+
const messageHandler = useCallback((e) => {
8+
if (e.origin === origin && e.data && e.data.type && e.data.type === type) {
9+
callback(e.data);
10+
}
11+
}, [origin, type]);
12+
13+
useEffect(() => {
14+
window.addEventListener(event, messageHandler);
15+
return () => window.removeEventListener(event, messageHandler);
16+
}, [event, messageHandler]);
17+
18+
return false;
19+
}
20+
21+
VerificationListener.propTypes = {
22+
event: PT.string.isRequired,
23+
callback: PT.func.isRequired,
24+
origin: PT.string.isRequired,
25+
type: PT.string.isRequired,
26+
};

src/shared/components/Settings/Account/Security/index.jsx

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ export default function Security({
9393
if (getConnectionAccepted() || usermfa.diceConnectionError) {
9494
setIsConnVerifyRunning(false);
9595
} else if (!usermfa.gettingDiceConnection && diceConnection.id) {
96-
if (connVerifyCounter >= 60) {
96+
if (connVerifyCounter >= 36) {
9797
closeSetup();
9898
} else {
9999
getDiceConnection(userId, diceConnection.id, tokenV3);
@@ -110,14 +110,18 @@ export default function Security({
110110
};
111111

112112
const verificationCallback = (data) => {
113-
const userEmail = _.get(data, 'profile.Email');
114-
if (!_.isUndefined(userEmail) && _.lowerCase(userEmail) === _.lowerCase(emailAddress)) {
115-
updateUserDice(userId, true, tokenV3);
116-
setSetupStep(3);
113+
if (data.success) {
114+
const userEmail = _.get(data, 'user.profile.Email');
115+
if (!_.isUndefined(userEmail) && _.lowerCase(userEmail) === _.lowerCase(emailAddress)) {
116+
updateUserDice(userId, true, tokenV3);
117+
setSetupStep(3);
118+
} else {
119+
setSetupStep(4);
120+
}
117121
} else {
118122
setSetupStep(4);
119123
}
120-
}
124+
};
121125

122126
const finishSetup = () => {
123127
getUser2fa(userId, tokenV3);
@@ -186,18 +190,28 @@ export default function Security({
186190
</div>
187191
</Modal>,
188192
<Modal
189-
showTools={false}
190-
onCancel={()=>{}}
191-
leftButtonName=""
192-
leftButtonClick={()=>{}}
193+
onCancel={closeSetup}
194+
leftButtonName="Cancel"
195+
leftButtonClick={closeSetup}
193196
rightButtonName=""
194-
rightButtonClick={()=>{}}
197+
rightButtonClick={() => {}}
198+
rightButtonHide
195199
>
196-
<iframe src={`${diceVerifyUrl}/dice-verifier.html`} />
200+
<div styleName="step-body">
201+
<div styleName="step-title">
202+
STEP 3 OF 3
203+
</div>
204+
<div styleName="step-content">
205+
Scan the following DICE ID QR Code in your
206+
DICE ID mobile application to confirm your credential.
207+
</div>
208+
<iframe src={`${diceVerifyUrl}/dice-verifier.html`} title="dice verifier" width="100%" height="350px" />
209+
</div>
197210
<VerificationListener
198211
event="message"
199212
callback={verificationCallback}
200-
source={`${diceVerifyUrl}/dice-verify-callback.html`}
213+
origin={diceVerifyUrl}
214+
type="DICE_VERIFICATION"
201215
/>
202216
</Modal>,
203217
<Modal

0 commit comments

Comments
 (0)