aboutsummaryrefslogtreecommitdiff
path: root/src/services/new_api/mfa.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/services/new_api/mfa.js')
-rw-r--r--src/services/new_api/mfa.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/services/new_api/mfa.js b/src/services/new_api/mfa.js
new file mode 100644
index 00000000..ddf90e6b
--- /dev/null
+++ b/src/services/new_api/mfa.js
@@ -0,0 +1,38 @@
+const verifyOTPCode = ({app, instance, mfaToken, code}) => {
+ const url = `${instance}/oauth/mfa/challenge`
+ const form = new window.FormData()
+
+ form.append('client_id', app.client_id)
+ form.append('client_secret', app.client_secret)
+ form.append('mfa_token', mfaToken)
+ form.append('code', code)
+ form.append('challenge_type', 'totp')
+
+ return window.fetch(url, {
+ method: 'POST',
+ body: form
+ }).then((data) => data.json())
+}
+
+const verifyRecoveryCode = ({app, instance, mfaToken, code}) => {
+ const url = `${instance}/oauth/mfa/challenge`
+ const form = new window.FormData()
+
+ form.append('client_id', app.client_id)
+ form.append('client_secret', app.client_secret)
+ form.append('mfa_token', mfaToken)
+ form.append('code', code)
+ form.append('challenge_type', 'recovery')
+
+ return window.fetch(url, {
+ method: 'POST',
+ body: form
+ }).then((data) => data.json())
+}
+
+const mfa = {
+ verifyOTPCode,
+ verifyRecoveryCode
+}
+
+export default mfa