@bytexbyte/berifyme-react-sdk 1.0.16 → 1.0.19
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/dist/BerifymeModal/index.js +20 -12
- package/dist/api/api.js +39 -4
- package/dist/components/AllSet/index.js +36 -40
- package/dist/components/Login/authid/authid.js +26 -17
- package/dist/components/Login/authid/index.js +1 -6
- package/dist/components/Login/clearAllSet.js +2 -6
- package/dist/components/Login/incode/Login.js +3 -3
- package/dist/components/OnBoarding/authId/index.js +29 -15
- package/dist/components/OnBoarding/clear/clearAllSet.js +2 -6
- package/dist/components/OnBoarding/incode/SelectType.js +7 -3
- package/dist/components/OnBoarding/incode/index.js +37 -32
- package/dist/components/OnBoarding/vender/grid/authIdGrid.js +1 -1
- package/dist/components/OnBoarding/vender/grid/clearGrid.js +1 -1
- package/dist/components/OnBoarding/vender/grid/incodeGrid.js +1 -1
- package/dist/components/OnBoarding/vender/grid/sumsubGrid.js +1 -1
- package/dist/components/OnBoarding/vender/grid/veriffGrid.js +1 -1
- package/dist/components/OnBoarding/vender/grid/yotiGrid.js +1 -1
- package/dist/components/QrcodeExpired.js +1 -1
- package/dist/components/SendSns/index.js +40 -34
- package/dist/components/SessionInterrupted.js +1 -1
- package/dist/components/SnapMatch/ExceptionView.js +22 -0
- package/dist/components/SnapMatch/LangSelector.js +26 -0
- package/dist/components/SnapMatch/SnapMatchStep.js +122 -0
- package/dist/components/SnapMatch/SuccessView.js +22 -0
- package/dist/components/SnapMatch/TryAgainView.js +19 -0
- package/dist/components/SnapMatch/index.js +271 -0
- package/dist/components/SnapMatch/translations.js +32 -0
- package/dist/components/SomethingWrong.js +41 -0
- package/dist/components/VerifyWithPhoneNumber/NewUser/index.js +4 -4
- package/dist/components/VerifyWithPhoneNumber/User/index.js +13 -10
- package/dist/index.js +6 -1
- package/dist/types/api/api.d.ts +7 -1
- package/dist/types/components/AllSet/index.d.ts +2 -1
- package/dist/types/components/Login/authid/authid.d.ts +1 -1
- package/dist/types/components/Login/authid/index.d.ts +1 -0
- package/dist/types/components/Login/clearAllSet.d.ts +1 -0
- package/dist/types/components/OnBoarding/clear/clearAllSet.d.ts +1 -0
- package/dist/types/components/OnBoarding/incode/SelectType.d.ts +2 -1
- package/dist/types/components/OnBoarding/incode/index.d.ts +2 -0
- package/dist/types/components/SnapMatch/ExceptionView.d.ts +11 -0
- package/dist/types/components/SnapMatch/LangSelector.d.ts +11 -0
- package/dist/types/components/SnapMatch/SnapMatchStep.d.ts +23 -0
- package/dist/types/components/SnapMatch/SuccessView.d.ts +11 -0
- package/dist/types/components/SnapMatch/TryAgainView.d.ts +11 -0
- package/dist/types/components/SnapMatch/index.d.ts +17 -0
- package/dist/types/components/SnapMatch/translations.d.ts +54 -0
- package/dist/types/components/SomethingWrong.d.ts +7 -0
- package/dist/types/index.d.ts +6 -1
- package/dist/types/vender/incode/incode.d.ts +6 -2
- package/dist/types/vender/incode/translations/en.d.ts +2638 -0
- package/dist/types/vender/incode/translations/zh-TW.d.ts +2634 -0
- package/dist/vender/incode/incode.js +81 -5
- package/dist/vender/incode/translations/en.js +2638 -0
- package/dist/vender/incode/translations/zh-TW.js +2634 -0
- package/package.json +5 -2
- package/dist/components/Login/sumsub/index.js +0 -212
- package/dist/components/Login/veriff/Login.js +0 -168
- package/dist/components/Login/veriff/index.js +0 -14
- package/dist/components/Login/yoti/Login.js +0 -245
- package/dist/components/Login/yoti/index.js +0 -14
- package/dist/components/OnBoarding/sumsub/index.js +0 -183
- package/dist/components/OnBoarding/veriff/index.js +0 -152
- package/dist/components/OnBoarding/yoti/OnBoarding.js +0 -238
- package/dist/components/OnBoarding/yoti/index.js +0 -14
- package/dist/components/TryAgain.js +0 -16
- package/dist/components/TryAgainInModal.js +0 -15
- package/dist/event.js +0 -18
- package/dist/types/components/Login/sumsub/index.d.ts +0 -10
- package/dist/types/components/Login/veriff/Login.d.ts +0 -12
- package/dist/types/components/Login/veriff/index.d.ts +0 -11
- package/dist/types/components/Login/yoti/Login.d.ts +0 -11
- package/dist/types/components/Login/yoti/index.d.ts +0 -10
- package/dist/types/components/OnBoarding/sumsub/index.d.ts +0 -10
- package/dist/types/components/OnBoarding/veriff/index.d.ts +0 -11
- package/dist/types/components/OnBoarding/yoti/OnBoarding.d.ts +0 -12
- package/dist/types/components/OnBoarding/yoti/index.d.ts +0 -11
- package/dist/types/components/TryAgain.d.ts +0 -6
- package/dist/types/components/TryAgainInModal.d.ts +0 -6
- package/dist/types/event.d.ts +0 -9
package/package.json
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bytexbyte/berifyme-react-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.19",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/types/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
9
|
+
"clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
9
10
|
"build": "tsc && copyfiles -u 1 'src/**/*.{css,svg}' dist",
|
|
11
|
+
"build:clean": "npm run clean && npm run build",
|
|
12
|
+
"build:umd": "webpack",
|
|
10
13
|
"webpack": "webpack",
|
|
11
14
|
"esbuild": "node esbuild.config.js",
|
|
12
15
|
"release": "yarn build && npm publish"
|
|
@@ -20,7 +23,7 @@
|
|
|
20
23
|
"@emotion/styled": "^11.13.0",
|
|
21
24
|
"@fontsource/inter": "^5.1.0",
|
|
22
25
|
"@fontsource/roboto": "^5.0.13",
|
|
23
|
-
"@incodetech/welcome": "
|
|
26
|
+
"@incodetech/welcome": "1.73.1",
|
|
24
27
|
"@mui/icons-material": "^5.16.5",
|
|
25
28
|
"@mui/material": "^5.16.5",
|
|
26
29
|
"@mui/x-data-grid": "^7.8.0",
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
import SumsubWebSdk from '@sumsub/websdk-react';
|
|
38
|
-
import React, { useCallback, useEffect, useState } from 'react';
|
|
39
|
-
import berifymeApi from '../../../api/api';
|
|
40
|
-
import { delay } from '../../../common';
|
|
41
|
-
import { createDeveloperLog } from '../../createDeveloperLog';
|
|
42
|
-
import TryAgain from '../../TryAgain';
|
|
43
|
-
var OPTIONS = { addViewportTag: false, adaptIframeHeight: true };
|
|
44
|
-
var SumsubLogin = function (_a) {
|
|
45
|
-
var user = _a.user, setUser = _a.setUser, goToAllSet = _a.goToAllSet, token = _a.token;
|
|
46
|
-
var _b = useState(), accessToken = _b[0], setAccessToken = _b[1];
|
|
47
|
-
var _c = useState(), externalActionId = _c[0], setExternalActionId = _c[1];
|
|
48
|
-
var _d = useState(), error = _d[0], setError = _d[1];
|
|
49
|
-
var getAccessToken = useCallback((function (phoneNumber) { return __awaiter(void 0, void 0, void 0, function () {
|
|
50
|
-
var accessTokenResponse;
|
|
51
|
-
return __generator(this, function (_a) {
|
|
52
|
-
switch (_a.label) {
|
|
53
|
-
case 0: return [4 /*yield*/, berifymeApi.sumsub.createAccessToken({ phoneNumber: phoneNumber, levelName: 'face-login' })];
|
|
54
|
-
case 1:
|
|
55
|
-
accessTokenResponse = _a.sent();
|
|
56
|
-
if ('error' in accessTokenResponse) {
|
|
57
|
-
console.log('error', accessTokenResponse.error);
|
|
58
|
-
createDeveloperLog({
|
|
59
|
-
userId: user === null || user === void 0 ? void 0 : user.id,
|
|
60
|
-
userDataJson: user,
|
|
61
|
-
source: 'FRONTEND',
|
|
62
|
-
action: 'sumsub api',
|
|
63
|
-
sessionToken: token,
|
|
64
|
-
firstDetail: 'createAccessToken',
|
|
65
|
-
secondDetail: accessTokenResponse.error,
|
|
66
|
-
});
|
|
67
|
-
return [2 /*return*/, { token: '' }];
|
|
68
|
-
}
|
|
69
|
-
return [2 /*return*/, accessTokenResponse];
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}); }), [token, user]);
|
|
73
|
-
var initAccessToken = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
74
|
-
var accessToken;
|
|
75
|
-
return __generator(this, function (_a) {
|
|
76
|
-
switch (_a.label) {
|
|
77
|
-
case 0:
|
|
78
|
-
if (!user.phoneNumber)
|
|
79
|
-
return [2 /*return*/];
|
|
80
|
-
if (!user.sumsubId)
|
|
81
|
-
return [2 /*return*/];
|
|
82
|
-
return [4 /*yield*/, getAccessToken(user.phoneNumber)];
|
|
83
|
-
case 1:
|
|
84
|
-
accessToken = _a.sent();
|
|
85
|
-
setAccessToken(accessToken.token);
|
|
86
|
-
setExternalActionId(accessToken.externalActionId);
|
|
87
|
-
return [2 /*return*/];
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
}); }, [user.phoneNumber, user.sumsubId, getAccessToken]);
|
|
91
|
-
var onSumsubLoginSuccess = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
92
|
-
var faceLoginResult, userResponse;
|
|
93
|
-
return __generator(this, function (_a) {
|
|
94
|
-
switch (_a.label) {
|
|
95
|
-
case 0:
|
|
96
|
-
if (!user.sumsubId)
|
|
97
|
-
return [2 /*return*/];
|
|
98
|
-
return [4 /*yield*/, berifymeApi.sumsub.getSumsubFaceLoginResult({ sumsubId: user.sumsubId || '', externalActionId: externalActionId || '' })];
|
|
99
|
-
case 1:
|
|
100
|
-
faceLoginResult = _a.sent();
|
|
101
|
-
if ('error' in faceLoginResult) {
|
|
102
|
-
console.error(faceLoginResult.error);
|
|
103
|
-
createDeveloperLog({
|
|
104
|
-
userId: user === null || user === void 0 ? void 0 : user.id,
|
|
105
|
-
userDataJson: user,
|
|
106
|
-
source: 'FRONTEND',
|
|
107
|
-
action: 'sumsub api',
|
|
108
|
-
sessionToken: token,
|
|
109
|
-
firstDetail: 'getFaceLoginResult',
|
|
110
|
-
secondDetail: faceLoginResult.error,
|
|
111
|
-
});
|
|
112
|
-
setError('Oops! Something went wrong...');
|
|
113
|
-
return [2 /*return*/];
|
|
114
|
-
}
|
|
115
|
-
if (!faceLoginResult.isVerified) {
|
|
116
|
-
console.error('faceLoginResult.isVerified is false');
|
|
117
|
-
createDeveloperLog({
|
|
118
|
-
userId: user === null || user === void 0 ? void 0 : user.id,
|
|
119
|
-
userDataJson: user,
|
|
120
|
-
source: 'FRONTEND',
|
|
121
|
-
action: 'sumsub api',
|
|
122
|
-
sessionToken: token,
|
|
123
|
-
firstDetail: 'getFaceLoginResult',
|
|
124
|
-
secondDetail: 'isVerified is false',
|
|
125
|
-
});
|
|
126
|
-
setError('Face verification failed');
|
|
127
|
-
return [2 /*return*/];
|
|
128
|
-
}
|
|
129
|
-
return [4 /*yield*/, berifymeApi.user.getUserBySumsubId({ sumsubId: user.sumsubId })];
|
|
130
|
-
case 2:
|
|
131
|
-
userResponse = _a.sent();
|
|
132
|
-
if ('error' in userResponse) {
|
|
133
|
-
console.log('error', userResponse.error);
|
|
134
|
-
createDeveloperLog({
|
|
135
|
-
userId: user === null || user === void 0 ? void 0 : user.id,
|
|
136
|
-
userDataJson: user,
|
|
137
|
-
source: 'FRONTEND',
|
|
138
|
-
action: 'sumsub api',
|
|
139
|
-
sessionToken: token,
|
|
140
|
-
firstDetail: 'getUserBySumsubId',
|
|
141
|
-
secondDetail: userResponse.error,
|
|
142
|
-
});
|
|
143
|
-
setError('Oops! Something went wrong...');
|
|
144
|
-
return [2 /*return*/];
|
|
145
|
-
}
|
|
146
|
-
setUser(userResponse.user);
|
|
147
|
-
goToAllSet();
|
|
148
|
-
return [2 /*return*/];
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
}); };
|
|
152
|
-
var accessTokenExpirationHandler = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
153
|
-
return __generator(this, function (_a) {
|
|
154
|
-
switch (_a.label) {
|
|
155
|
-
case 0:
|
|
156
|
-
console.log('accessTokenExpirationHandler');
|
|
157
|
-
if (!user.phoneNumber)
|
|
158
|
-
return [2 /*return*/, ''];
|
|
159
|
-
return [4 /*yield*/, getAccessToken(user.phoneNumber)];
|
|
160
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
}); }, [getAccessToken, user.phoneNumber]);
|
|
164
|
-
var messageHandler = function (type, payload) { return __awaiter(void 0, void 0, void 0, function () {
|
|
165
|
-
var _a;
|
|
166
|
-
return __generator(this, function (_b) {
|
|
167
|
-
switch (_b.label) {
|
|
168
|
-
case 0:
|
|
169
|
-
console.log('onMessage', type, payload);
|
|
170
|
-
createDeveloperLog({
|
|
171
|
-
userId: user === null || user === void 0 ? void 0 : user.id,
|
|
172
|
-
userDataJson: user,
|
|
173
|
-
source: 'FRONTEND',
|
|
174
|
-
action: 'sumsub step',
|
|
175
|
-
sessionToken: token,
|
|
176
|
-
firstDetail: type,
|
|
177
|
-
secondDetail: JSON.stringify(payload),
|
|
178
|
-
});
|
|
179
|
-
if (!(type === 'idCheck.onApplicantActionCompleted')) return [3 /*break*/, 5];
|
|
180
|
-
_a = payload.answer;
|
|
181
|
-
switch (_a) {
|
|
182
|
-
case 'GREEN': return [3 /*break*/, 1];
|
|
183
|
-
case 'RED': return [3 /*break*/, 3];
|
|
184
|
-
}
|
|
185
|
-
return [3 /*break*/, 4];
|
|
186
|
-
case 1: return [4 /*yield*/, delay(1000)];
|
|
187
|
-
case 2:
|
|
188
|
-
_b.sent();
|
|
189
|
-
onSumsubLoginSuccess();
|
|
190
|
-
return [3 /*break*/, 5];
|
|
191
|
-
case 3:
|
|
192
|
-
setError('Face verification failed');
|
|
193
|
-
return [3 /*break*/, 5];
|
|
194
|
-
case 4:
|
|
195
|
-
setError('Oops! Something went wrong...');
|
|
196
|
-
_b.label = 5;
|
|
197
|
-
case 5: return [2 /*return*/];
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
}); };
|
|
201
|
-
var errorHandler = function (error) {
|
|
202
|
-
console.log('onError', error);
|
|
203
|
-
};
|
|
204
|
-
useEffect(function () {
|
|
205
|
-
initAccessToken();
|
|
206
|
-
}, [initAccessToken]);
|
|
207
|
-
if (error || !token)
|
|
208
|
-
return (React.createElement(TryAgain, { message: error }));
|
|
209
|
-
return (React.createElement(React.Fragment, null, accessToken &&
|
|
210
|
-
React.createElement(SumsubWebSdk, { accessToken: accessToken, expirationHandler: accessTokenExpirationHandler, options: OPTIONS, onMessage: messageHandler, onError: errorHandler })));
|
|
211
|
-
};
|
|
212
|
-
export default SumsubLogin;
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
import { Box, CircularProgress } from '@mui/material';
|
|
38
|
-
import { createVeriffFrame, MESSAGES } from '@veriff/incontext-sdk';
|
|
39
|
-
//@ts-expect-error - Veriff sample code
|
|
40
|
-
import { Veriff } from '@veriff/js-sdk';
|
|
41
|
-
import React, { useCallback, useEffect, useState } from 'react';
|
|
42
|
-
import berifymeApi from '../../../api/api';
|
|
43
|
-
import { createDeveloperLog } from '../../createDeveloperLog';
|
|
44
|
-
export default function LoginComponent(_a) {
|
|
45
|
-
var _this = this;
|
|
46
|
-
var user = _a.user, setUser = _a.setUser, onSuccess = _a.onSuccess, onGoBack = _a.onGoBack, onError = _a.onError, token = _a.token;
|
|
47
|
-
var _b = useState(), step = _b[0], setStep = _b[1];
|
|
48
|
-
var _c = useState(false), initFinished = _c[0], setInitFinished = _c[1];
|
|
49
|
-
var _d = useState(), sessionId = _d[0], setSessionId = _d[1];
|
|
50
|
-
var onFinishedVeriff = useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
51
|
-
var faceLoginResult, userResponse;
|
|
52
|
-
return __generator(this, function (_a) {
|
|
53
|
-
switch (_a.label) {
|
|
54
|
-
case 0:
|
|
55
|
-
if (!user.veriffId)
|
|
56
|
-
return [2 /*return*/];
|
|
57
|
-
return [4 /*yield*/, berifymeApi.veriff.getVeriffFaceLoginResult({ sessionId: sessionId || '' })];
|
|
58
|
-
case 1:
|
|
59
|
-
faceLoginResult = _a.sent();
|
|
60
|
-
if ('error' in faceLoginResult) {
|
|
61
|
-
console.error(faceLoginResult.error);
|
|
62
|
-
createDeveloperLog({
|
|
63
|
-
userId: user === null || user === void 0 ? void 0 : user.id,
|
|
64
|
-
userDataJson: user,
|
|
65
|
-
source: 'FRONTEND',
|
|
66
|
-
action: 'veriff api',
|
|
67
|
-
sessionToken: token,
|
|
68
|
-
firstDetail: 'getFaceLoginResult',
|
|
69
|
-
secondDetail: faceLoginResult.error,
|
|
70
|
-
});
|
|
71
|
-
onError('Oops! Something went wrong...');
|
|
72
|
-
return [2 /*return*/];
|
|
73
|
-
}
|
|
74
|
-
if (!faceLoginResult.isVerified) {
|
|
75
|
-
console.error('faceLoginResult.isVerified is false');
|
|
76
|
-
createDeveloperLog({
|
|
77
|
-
userId: user === null || user === void 0 ? void 0 : user.id,
|
|
78
|
-
userDataJson: user,
|
|
79
|
-
source: 'FRONTEND',
|
|
80
|
-
action: 'veriff api',
|
|
81
|
-
sessionToken: token,
|
|
82
|
-
firstDetail: 'getFaceLoginResult',
|
|
83
|
-
secondDetail: 'isVerified is false',
|
|
84
|
-
});
|
|
85
|
-
onError('Face verification failed');
|
|
86
|
-
return [2 /*return*/];
|
|
87
|
-
}
|
|
88
|
-
return [4 /*yield*/, berifymeApi.veriff.getUserByVeriffId({ veriffId: user.veriffId })];
|
|
89
|
-
case 2:
|
|
90
|
-
userResponse = _a.sent();
|
|
91
|
-
if ('error' in userResponse) {
|
|
92
|
-
console.log('error', userResponse.error);
|
|
93
|
-
createDeveloperLog({
|
|
94
|
-
userId: user === null || user === void 0 ? void 0 : user.id,
|
|
95
|
-
userDataJson: user,
|
|
96
|
-
source: 'FRONTEND',
|
|
97
|
-
action: 'veriff api',
|
|
98
|
-
sessionToken: token,
|
|
99
|
-
firstDetail: 'getUserByVeriffId',
|
|
100
|
-
secondDetail: userResponse.error,
|
|
101
|
-
});
|
|
102
|
-
onError('Oops! Something went wrong...');
|
|
103
|
-
return [2 /*return*/];
|
|
104
|
-
}
|
|
105
|
-
setUser(userResponse.user);
|
|
106
|
-
onSuccess();
|
|
107
|
-
return [2 /*return*/];
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
}); }, [user, sessionId, setUser, onSuccess, token, onError]);
|
|
111
|
-
var onCancelVeriff = useCallback(function () {
|
|
112
|
-
onGoBack();
|
|
113
|
-
}, [onGoBack]);
|
|
114
|
-
useEffect(function () {
|
|
115
|
-
if (!user.phoneNumber)
|
|
116
|
-
return;
|
|
117
|
-
setInitFinished(false);
|
|
118
|
-
var veriff = Veriff({
|
|
119
|
-
host: 'https://api.veriff.me',
|
|
120
|
-
apiKey: 'ec9ca5ea-d883-4da3-a7e8-843d070d7cd1',
|
|
121
|
-
parentId: 'veriff-root',
|
|
122
|
-
onSession: function (err, response) {
|
|
123
|
-
console.log(err);
|
|
124
|
-
setSessionId(response.verification.id);
|
|
125
|
-
createVeriffFrame({ url: response.verification.url, onEvent: function (msg) { setStep(msg); } });
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
veriff.setParams({
|
|
129
|
-
person: {
|
|
130
|
-
givenName: ' ',
|
|
131
|
-
lastName: ' '
|
|
132
|
-
},
|
|
133
|
-
vendorData: user.phoneNumber,
|
|
134
|
-
});
|
|
135
|
-
veriff.mount();
|
|
136
|
-
setInitFinished(true);
|
|
137
|
-
}, [user.phoneNumber]);
|
|
138
|
-
useEffect(function () {
|
|
139
|
-
switch (step) {
|
|
140
|
-
case MESSAGES.FINISHED:
|
|
141
|
-
onFinishedVeriff();
|
|
142
|
-
break;
|
|
143
|
-
case MESSAGES.CANCELED:
|
|
144
|
-
onCancelVeriff();
|
|
145
|
-
break;
|
|
146
|
-
default:
|
|
147
|
-
break;
|
|
148
|
-
}
|
|
149
|
-
}, [onFinishedVeriff, onCancelVeriff, step]);
|
|
150
|
-
useEffect(function () {
|
|
151
|
-
var timeoutHandle = setTimeout(function () {
|
|
152
|
-
var _a;
|
|
153
|
-
if (!initFinished)
|
|
154
|
-
return;
|
|
155
|
-
(_a = document.getElementById('veriff-submit-btn')) === null || _a === void 0 ? void 0 : _a.click();
|
|
156
|
-
}, 100);
|
|
157
|
-
return function () { return clearTimeout(timeoutHandle); };
|
|
158
|
-
}, [initFinished]);
|
|
159
|
-
return (React.createElement(Box, { style: {
|
|
160
|
-
display: 'flex',
|
|
161
|
-
flexDirection: 'column',
|
|
162
|
-
alignItems: 'center',
|
|
163
|
-
justifyContent: 'center',
|
|
164
|
-
height: '100vh',
|
|
165
|
-
} },
|
|
166
|
-
React.createElement(CircularProgress, { color: "inherit" }),
|
|
167
|
-
React.createElement("div", { id: 'veriff-root', style: { height: 0, opacity: 0 } })));
|
|
168
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import React, { useCallback, useState } from 'react';
|
|
2
|
-
import TryAgain from '../../TryAgain';
|
|
3
|
-
import Login from './Login';
|
|
4
|
-
var VeriffLogin = function (_a) {
|
|
5
|
-
var user = _a.user, setUser = _a.setUser, onSuccess = _a.onSuccess, onGoBack = _a.onGoBack, token = _a.token;
|
|
6
|
-
var _b = useState(), error = _b[0], setError = _b[1];
|
|
7
|
-
var handleError = useCallback(function (error) {
|
|
8
|
-
setError(error);
|
|
9
|
-
}, []);
|
|
10
|
-
if (error || !token)
|
|
11
|
-
return (React.createElement(TryAgain, { message: error }));
|
|
12
|
-
return (React.createElement(Login, { user: user, setUser: setUser, onSuccess: onSuccess, onGoBack: onGoBack, onError: handleError, token: token }));
|
|
13
|
-
};
|
|
14
|
-
export default VeriffLogin;
|
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
import { CircularProgress, Stack, Typography } from '@mui/material';
|
|
38
|
-
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
39
|
-
import berifymeApi from '../../../api/api';
|
|
40
|
-
import { delay } from '../../../common';
|
|
41
|
-
import { createDeveloperLog } from '../../createDeveloperLog';
|
|
42
|
-
var RETRY_INTERVAL = 1000 * 2;
|
|
43
|
-
var Login = function (_a) {
|
|
44
|
-
var user = _a.user, setUser = _a.setUser, onSuccess = _a.onSuccess, onError = _a.onError, token = _a.token;
|
|
45
|
-
var _b = useState(), session = _b[0], setSession = _b[1];
|
|
46
|
-
var _c = useState(), loading = _c[0], setLoading = _c[1];
|
|
47
|
-
var sessionRef = useRef();
|
|
48
|
-
var handleSuccess = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
49
|
-
var faceLoginResultResponse, userResponse, error_1;
|
|
50
|
-
return __generator(this, function (_a) {
|
|
51
|
-
switch (_a.label) {
|
|
52
|
-
case 0:
|
|
53
|
-
createDeveloperLog({
|
|
54
|
-
userId: user === null || user === void 0 ? void 0 : user.id,
|
|
55
|
-
userDataJson: user,
|
|
56
|
-
source: 'FRONTEND',
|
|
57
|
-
action: 'yoti step',
|
|
58
|
-
sessionToken: token,
|
|
59
|
-
firstDetail: 'handleSuccess',
|
|
60
|
-
secondDetail: JSON.stringify(sessionRef.current),
|
|
61
|
-
});
|
|
62
|
-
if (!sessionRef.current)
|
|
63
|
-
return [2 /*return*/];
|
|
64
|
-
if (!user.yotiId)
|
|
65
|
-
return [2 /*return*/];
|
|
66
|
-
_a.label = 1;
|
|
67
|
-
case 1:
|
|
68
|
-
_a.trys.push([1, 10, 11, 12]);
|
|
69
|
-
setLoading('We are processing your data');
|
|
70
|
-
faceLoginResultResponse = void 0;
|
|
71
|
-
_a.label = 2;
|
|
72
|
-
case 2: return [4 /*yield*/, berifymeApi.yoti.getYotiFaceLoginResult({ sessionId: sessionRef.current.sessionId })];
|
|
73
|
-
case 3:
|
|
74
|
-
faceLoginResultResponse = _a.sent();
|
|
75
|
-
createDeveloperLog({
|
|
76
|
-
userId: user === null || user === void 0 ? void 0 : user.id,
|
|
77
|
-
userDataJson: user,
|
|
78
|
-
source: 'FRONTEND',
|
|
79
|
-
action: 'yoti api',
|
|
80
|
-
sessionToken: token,
|
|
81
|
-
firstDetail: 'getYotiFaceLoginResult',
|
|
82
|
-
secondDetail: JSON.stringify(faceLoginResultResponse),
|
|
83
|
-
});
|
|
84
|
-
if (!('error' in faceLoginResultResponse)) return [3 /*break*/, 6];
|
|
85
|
-
if (!(faceLoginResultResponse.error === 'Session ongoing')) return [3 /*break*/, 5];
|
|
86
|
-
return [4 /*yield*/, delay(RETRY_INTERVAL)];
|
|
87
|
-
case 4:
|
|
88
|
-
_a.sent();
|
|
89
|
-
return [3 /*break*/, 7];
|
|
90
|
-
case 5:
|
|
91
|
-
onError('Oops! Something went wrong. Please try again later.');
|
|
92
|
-
return [2 /*return*/];
|
|
93
|
-
case 6: return [3 /*break*/, 8];
|
|
94
|
-
case 7:
|
|
95
|
-
if (true) return [3 /*break*/, 2];
|
|
96
|
-
_a.label = 8;
|
|
97
|
-
case 8:
|
|
98
|
-
if (!faceLoginResultResponse.isVerified) {
|
|
99
|
-
console.error('faceLoginResult.isVerified is false');
|
|
100
|
-
createDeveloperLog({
|
|
101
|
-
userId: user === null || user === void 0 ? void 0 : user.id,
|
|
102
|
-
userDataJson: user,
|
|
103
|
-
source: 'FRONTEND',
|
|
104
|
-
action: 'veriff api',
|
|
105
|
-
sessionToken: token,
|
|
106
|
-
firstDetail: 'getYotiFaceLoginResult',
|
|
107
|
-
secondDetail: 'isVerified is false',
|
|
108
|
-
});
|
|
109
|
-
onError('Face verification failed');
|
|
110
|
-
return [2 /*return*/];
|
|
111
|
-
}
|
|
112
|
-
return [4 /*yield*/, berifymeApi.user.getUserByYotiId({ yotiId: user.yotiId })];
|
|
113
|
-
case 9:
|
|
114
|
-
userResponse = _a.sent();
|
|
115
|
-
if ('error' in userResponse) {
|
|
116
|
-
createDeveloperLog({
|
|
117
|
-
userId: user === null || user === void 0 ? void 0 : user.id,
|
|
118
|
-
userDataJson: user,
|
|
119
|
-
source: 'FRONTEND',
|
|
120
|
-
action: 'yoti api',
|
|
121
|
-
sessionToken: token,
|
|
122
|
-
firstDetail: 'getUserByYotiId',
|
|
123
|
-
secondDetail: JSON.stringify(userResponse),
|
|
124
|
-
});
|
|
125
|
-
onError('Oops! Something went wrong. Please try again later.');
|
|
126
|
-
return [2 /*return*/];
|
|
127
|
-
}
|
|
128
|
-
// cuz secondDetail is too long
|
|
129
|
-
createDeveloperLog({
|
|
130
|
-
userId: user === null || user === void 0 ? void 0 : user.id,
|
|
131
|
-
userDataJson: user,
|
|
132
|
-
source: 'FRONTEND',
|
|
133
|
-
action: 'yoti api',
|
|
134
|
-
sessionToken: token,
|
|
135
|
-
firstDetail: 'getUserByYotiId',
|
|
136
|
-
secondDetail: JSON.stringify({ yotiId: userResponse.user.yotiId, fullName: userResponse.user.fullName, age: userResponse.user.age, birthDate: userResponse.user.birthDate }),
|
|
137
|
-
});
|
|
138
|
-
setUser(userResponse.user);
|
|
139
|
-
onSuccess();
|
|
140
|
-
return [3 /*break*/, 12];
|
|
141
|
-
case 10:
|
|
142
|
-
error_1 = _a.sent();
|
|
143
|
-
onError('Oops! Something went wrong. Please try again later.');
|
|
144
|
-
return [3 /*break*/, 12];
|
|
145
|
-
case 11:
|
|
146
|
-
setLoading(undefined);
|
|
147
|
-
return [7 /*endfinally*/];
|
|
148
|
-
case 12: return [2 /*return*/];
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
}); }, [onError, onSuccess, setUser, token, user]);
|
|
152
|
-
var handleError = useCallback(function () {
|
|
153
|
-
createDeveloperLog({
|
|
154
|
-
userId: user === null || user === void 0 ? void 0 : user.id,
|
|
155
|
-
userDataJson: user,
|
|
156
|
-
source: 'FRONTEND',
|
|
157
|
-
action: 'yoti step',
|
|
158
|
-
sessionToken: token,
|
|
159
|
-
firstDetail: 'handleError',
|
|
160
|
-
secondDetail: JSON.stringify(sessionRef.current),
|
|
161
|
-
});
|
|
162
|
-
onError('Oops! Something went wrong. Please try again later.');
|
|
163
|
-
}, [onError, token, user]);
|
|
164
|
-
var initYoti = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
165
|
-
var response, error_2;
|
|
166
|
-
return __generator(this, function (_a) {
|
|
167
|
-
switch (_a.label) {
|
|
168
|
-
case 0:
|
|
169
|
-
if (!(user === null || user === void 0 ? void 0 : user.yotiId) || !token)
|
|
170
|
-
return [2 /*return*/];
|
|
171
|
-
_a.label = 1;
|
|
172
|
-
case 1:
|
|
173
|
-
_a.trys.push([1, 3, 4, 5]);
|
|
174
|
-
setLoading('Loading...');
|
|
175
|
-
return [4 /*yield*/, berifymeApi.yoti.createYotiFaceLoginSession({ sessionId: user.yotiId })];
|
|
176
|
-
case 2:
|
|
177
|
-
response = _a.sent();
|
|
178
|
-
createDeveloperLog({
|
|
179
|
-
userId: user.id,
|
|
180
|
-
userDataJson: user,
|
|
181
|
-
source: 'FRONTEND',
|
|
182
|
-
action: 'yoti api',
|
|
183
|
-
sessionToken: token,
|
|
184
|
-
firstDetail: 'createYotiSession',
|
|
185
|
-
secondDetail: JSON.stringify(response),
|
|
186
|
-
});
|
|
187
|
-
if ('error' in response) {
|
|
188
|
-
onError('Oops! Something went wrong. Please try again later.');
|
|
189
|
-
return [2 /*return*/];
|
|
190
|
-
}
|
|
191
|
-
setSession(response);
|
|
192
|
-
return [3 /*break*/, 5];
|
|
193
|
-
case 3:
|
|
194
|
-
error_2 = _a.sent();
|
|
195
|
-
onError('Oops! Something went wrong. Please try again later.');
|
|
196
|
-
return [3 /*break*/, 5];
|
|
197
|
-
case 4:
|
|
198
|
-
setLoading(undefined);
|
|
199
|
-
return [7 /*endfinally*/];
|
|
200
|
-
case 5: return [2 /*return*/];
|
|
201
|
-
}
|
|
202
|
-
});
|
|
203
|
-
}); }, [onError, token, user]);
|
|
204
|
-
var initListener = useCallback(function () {
|
|
205
|
-
window.addEventListener('message', function (event) {
|
|
206
|
-
createDeveloperLog({
|
|
207
|
-
userId: user === null || user === void 0 ? void 0 : user.id,
|
|
208
|
-
userDataJson: user,
|
|
209
|
-
source: 'FRONTEND',
|
|
210
|
-
action: 'yoti event',
|
|
211
|
-
sessionToken: token,
|
|
212
|
-
firstDetail: 'event.data.eventType',
|
|
213
|
-
secondDetail: JSON.stringify(event.data),
|
|
214
|
-
});
|
|
215
|
-
switch (event.data.eventType) {
|
|
216
|
-
case 'SUCCESS':
|
|
217
|
-
handleSuccess();
|
|
218
|
-
break;
|
|
219
|
-
case 'ERROR':
|
|
220
|
-
handleError();
|
|
221
|
-
break;
|
|
222
|
-
default:
|
|
223
|
-
break;
|
|
224
|
-
}
|
|
225
|
-
});
|
|
226
|
-
return function () {
|
|
227
|
-
window.removeEventListener('message', function () { });
|
|
228
|
-
};
|
|
229
|
-
}, [user, token, handleSuccess, handleError]);
|
|
230
|
-
useEffect(function () {
|
|
231
|
-
initYoti();
|
|
232
|
-
}, [initYoti]);
|
|
233
|
-
useEffect(function () {
|
|
234
|
-
initListener();
|
|
235
|
-
}, [initListener]);
|
|
236
|
-
useEffect(function () {
|
|
237
|
-
sessionRef.current = session;
|
|
238
|
-
}, [session]);
|
|
239
|
-
if (loading)
|
|
240
|
-
return (React.createElement(Stack, { justifyContent: 'center', alignItems: 'center', height: '100%', spacing: 2 },
|
|
241
|
-
React.createElement(CircularProgress, { color: "inherit" }),
|
|
242
|
-
React.createElement(Typography, { color: '#585858' }, loading)));
|
|
243
|
-
return (React.createElement(React.Fragment, null, session && (React.createElement("iframe", { src: "https://api.yoti.com/idverify/v1/web/index.html?sessionID=".concat(session.sessionId, "&sessionToken=").concat(session.clientSessionToken), allow: "camera", width: "100%", height: "100%", id: "yoti", frameBorder: "0" }))));
|
|
244
|
-
};
|
|
245
|
-
export default Login;
|