react-native-authsignal 2.6.1 → 2.8.0-alpha.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.
- package/android/build.gradle +3 -19
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/authsignal/react/AuthsignalEmailModule.kt +11 -18
- package/android/src/main/java/com/authsignal/react/AuthsignalInAppModule.kt +61 -45
- package/android/src/main/java/com/authsignal/react/AuthsignalModule.kt +25 -39
- package/android/src/main/java/com/authsignal/react/AuthsignalPackage.kt +70 -17
- package/android/src/main/java/com/authsignal/react/AuthsignalPasskeyModule.kt +23 -17
- package/android/src/main/java/com/authsignal/react/AuthsignalPushModule.kt +16 -21
- package/android/src/main/java/com/authsignal/react/AuthsignalQRCodeModule.kt +16 -22
- package/android/src/main/java/com/authsignal/react/AuthsignalSMSModule.kt +11 -25
- package/android/src/main/java/com/authsignal/react/AuthsignalTOTPModule.kt +10 -17
- package/android/src/main/java/com/authsignal/react/AuthsignalWhatsappModule.kt +10 -23
- package/ios/AuthsignalEmailModule.m +7 -7
- package/ios/AuthsignalEmailModule.swift +10 -9
- package/ios/AuthsignalInAppModule.m +18 -17
- package/ios/AuthsignalInAppModule.swift +41 -27
- package/ios/AuthsignalModule.m +4 -4
- package/ios/AuthsignalModule.swift +14 -10
- package/ios/AuthsignalPasskeyModule.m +10 -10
- package/ios/AuthsignalPasskeyModule.swift +22 -21
- package/ios/AuthsignalPushModule.m +9 -9
- package/ios/AuthsignalPushModule.swift +14 -13
- package/ios/AuthsignalQRModule.m +10 -10
- package/ios/AuthsignalQRModule.swift +15 -14
- package/ios/AuthsignalSMSModule.m +7 -7
- package/ios/AuthsignalSMSModule.swift +10 -9
- package/ios/AuthsignalTOTPModule.m +5 -5
- package/ios/AuthsignalTOTPModule.swift +8 -7
- package/ios/AuthsignalTurboModules.mm +26 -0
- package/ios/AuthsignalWhatsappModule.m +5 -5
- package/ios/AuthsignalWhatsappModule.swift +8 -7
- package/lib/commonjs/NativeAuthsignalEmailModule.js +9 -0
- package/lib/commonjs/NativeAuthsignalEmailModule.js.map +1 -0
- package/lib/commonjs/NativeAuthsignalInAppModule.js +9 -0
- package/lib/commonjs/NativeAuthsignalInAppModule.js.map +1 -0
- package/lib/commonjs/NativeAuthsignalModule.js +9 -0
- package/lib/commonjs/NativeAuthsignalModule.js.map +1 -0
- package/lib/commonjs/NativeAuthsignalPasskeyModule.js +9 -0
- package/lib/commonjs/NativeAuthsignalPasskeyModule.js.map +1 -0
- package/lib/commonjs/NativeAuthsignalPushModule.js +9 -0
- package/lib/commonjs/NativeAuthsignalPushModule.js.map +1 -0
- package/lib/commonjs/NativeAuthsignalQRCodeModule.js +9 -0
- package/lib/commonjs/NativeAuthsignalQRCodeModule.js.map +1 -0
- package/lib/commonjs/NativeAuthsignalSMSModule.js +9 -0
- package/lib/commonjs/NativeAuthsignalSMSModule.js.map +1 -0
- package/lib/commonjs/NativeAuthsignalTOTPModule.js +9 -0
- package/lib/commonjs/NativeAuthsignalTOTPModule.js.map +1 -0
- package/lib/commonjs/NativeAuthsignalWhatsappModule.js +9 -0
- package/lib/commonjs/NativeAuthsignalWhatsappModule.js.map +1 -0
- package/lib/commonjs/email.js +7 -9
- package/lib/commonjs/email.js.map +1 -1
- package/lib/commonjs/getNativeModule.js +23 -0
- package/lib/commonjs/getNativeModule.js.map +1 -0
- package/lib/commonjs/inapp.js +15 -16
- package/lib/commonjs/inapp.js.map +1 -1
- package/lib/commonjs/index.js +6 -27
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/passkey.js +21 -31
- package/lib/commonjs/passkey.js.map +1 -1
- package/lib/commonjs/push.js +8 -10
- package/lib/commonjs/push.js.map +1 -1
- package/lib/commonjs/qr.js +8 -10
- package/lib/commonjs/qr.js.map +1 -1
- package/lib/commonjs/sms.js +7 -9
- package/lib/commonjs/sms.js.map +1 -1
- package/lib/commonjs/totp.js +7 -9
- package/lib/commonjs/totp.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/whatsapp.js +7 -9
- package/lib/commonjs/whatsapp.js.map +1 -1
- package/lib/module/NativeAuthsignalEmailModule.js +3 -0
- package/lib/module/NativeAuthsignalEmailModule.js.map +1 -0
- package/lib/module/NativeAuthsignalInAppModule.js +3 -0
- package/lib/module/NativeAuthsignalInAppModule.js.map +1 -0
- package/lib/module/NativeAuthsignalModule.js +3 -0
- package/lib/module/NativeAuthsignalModule.js.map +1 -0
- package/lib/module/NativeAuthsignalPasskeyModule.js +3 -0
- package/lib/module/NativeAuthsignalPasskeyModule.js.map +1 -0
- package/lib/module/NativeAuthsignalPushModule.js +3 -0
- package/lib/module/NativeAuthsignalPushModule.js.map +1 -0
- package/lib/module/NativeAuthsignalQRCodeModule.js +3 -0
- package/lib/module/NativeAuthsignalQRCodeModule.js.map +1 -0
- package/lib/module/NativeAuthsignalSMSModule.js +3 -0
- package/lib/module/NativeAuthsignalSMSModule.js.map +1 -0
- package/lib/module/NativeAuthsignalTOTPModule.js +3 -0
- package/lib/module/NativeAuthsignalTOTPModule.js.map +1 -0
- package/lib/module/NativeAuthsignalWhatsappModule.js +3 -0
- package/lib/module/NativeAuthsignalWhatsappModule.js.map +1 -0
- package/lib/module/email.js +7 -10
- package/lib/module/email.js.map +1 -1
- package/lib/module/getNativeModule.js +17 -0
- package/lib/module/getNativeModule.js.map +1 -0
- package/lib/module/inapp.js +15 -17
- package/lib/module/inapp.js.map +1 -1
- package/lib/module/index.js +4 -27
- package/lib/module/index.js.map +1 -1
- package/lib/module/passkey.js +22 -33
- package/lib/module/passkey.js.map +1 -1
- package/lib/module/push.js +8 -11
- package/lib/module/push.js.map +1 -1
- package/lib/module/qr.js +8 -11
- package/lib/module/qr.js.map +1 -1
- package/lib/module/sms.js +7 -10
- package/lib/module/sms.js.map +1 -1
- package/lib/module/totp.js +7 -10
- package/lib/module/totp.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/whatsapp.js +7 -10
- package/lib/module/whatsapp.js.map +1 -1
- package/lib/typescript/NativeAuthsignalEmailModule.d.ts +10 -0
- package/lib/typescript/NativeAuthsignalEmailModule.d.ts.map +1 -0
- package/lib/typescript/NativeAuthsignalInAppModule.d.ts +15 -0
- package/lib/typescript/NativeAuthsignalInAppModule.d.ts.map +1 -0
- package/lib/typescript/NativeAuthsignalModule.d.ts +8 -0
- package/lib/typescript/NativeAuthsignalModule.d.ts.map +1 -0
- package/lib/typescript/NativeAuthsignalPasskeyModule.d.ts +12 -0
- package/lib/typescript/NativeAuthsignalPasskeyModule.d.ts.map +1 -0
- package/lib/typescript/NativeAuthsignalPushModule.d.ts +12 -0
- package/lib/typescript/NativeAuthsignalPushModule.d.ts.map +1 -0
- package/lib/typescript/NativeAuthsignalQRCodeModule.d.ts +12 -0
- package/lib/typescript/NativeAuthsignalQRCodeModule.d.ts.map +1 -0
- package/lib/typescript/NativeAuthsignalSMSModule.d.ts +10 -0
- package/lib/typescript/NativeAuthsignalSMSModule.d.ts.map +1 -0
- package/lib/typescript/NativeAuthsignalTOTPModule.d.ts +9 -0
- package/lib/typescript/NativeAuthsignalTOTPModule.d.ts.map +1 -0
- package/lib/typescript/NativeAuthsignalWhatsappModule.d.ts +9 -0
- package/lib/typescript/NativeAuthsignalWhatsappModule.d.ts.map +1 -0
- package/lib/typescript/email.d.ts +1 -0
- package/lib/typescript/email.d.ts.map +1 -1
- package/lib/typescript/getNativeModule.d.ts +2 -0
- package/lib/typescript/getNativeModule.d.ts.map +1 -0
- package/lib/typescript/inapp.d.ts +2 -1
- package/lib/typescript/inapp.d.ts.map +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/passkey.d.ts +2 -0
- package/lib/typescript/passkey.d.ts.map +1 -1
- package/lib/typescript/push.d.ts +1 -0
- package/lib/typescript/push.d.ts.map +1 -1
- package/lib/typescript/qr.d.ts +1 -0
- package/lib/typescript/qr.d.ts.map +1 -1
- package/lib/typescript/sms.d.ts +1 -0
- package/lib/typescript/sms.d.ts.map +1 -1
- package/lib/typescript/totp.d.ts +1 -0
- package/lib/typescript/totp.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +5 -0
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/whatsapp.d.ts +1 -0
- package/lib/typescript/whatsapp.d.ts.map +1 -1
- package/package.json +10 -1
- package/react-native-authsignal.podspec +3 -2
- package/src/NativeAuthsignalEmailModule.ts +10 -0
- package/src/NativeAuthsignalInAppModule.ts +32 -0
- package/src/NativeAuthsignalModule.ts +8 -0
- package/src/NativeAuthsignalPasskeyModule.ts +26 -0
- package/src/NativeAuthsignalPushModule.ts +20 -0
- package/src/NativeAuthsignalQRCodeModule.ts +20 -0
- package/src/NativeAuthsignalSMSModule.ts +10 -0
- package/src/NativeAuthsignalTOTPModule.ts +9 -0
- package/src/NativeAuthsignalWhatsappModule.ts +9 -0
- package/src/email.ts +90 -0
- package/src/email.web.ts +105 -0
- package/src/error.ts +28 -0
- package/src/error.web.ts +21 -0
- package/src/getNativeModule.ts +28 -0
- package/src/inapp.ts +220 -0
- package/src/index.tsx +80 -0
- package/src/index.web.tsx +99 -0
- package/src/passkey.ts +165 -0
- package/src/passkey.web.ts +153 -0
- package/src/push.ts +147 -0
- package/src/qr.ts +150 -0
- package/src/sms.ts +92 -0
- package/src/sms.web.ts +107 -0
- package/src/totp.ts +79 -0
- package/src/totp.web.ts +95 -0
- package/src/types.ts +161 -0
- package/src/web-client.ts +29 -0
- package/src/whatsapp.ts +76 -0
- package/src/whatsapp.web.ts +83 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import Security
|
|
2
|
-
import Foundation
|
|
3
1
|
import Authsignal
|
|
2
|
+
import Foundation
|
|
3
|
+
import React
|
|
4
|
+
import Security
|
|
4
5
|
|
|
5
6
|
@objc(AuthsignalInAppModule)
|
|
6
7
|
class AuthsignalInAppModule: NSObject {
|
|
@@ -13,8 +14,8 @@ class AuthsignalInAppModule: NSObject {
|
|
|
13
14
|
@objc func initialize(
|
|
14
15
|
_ tenantID: NSString,
|
|
15
16
|
withBaseURL baseURL: NSString,
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
18
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
18
19
|
) -> Void {
|
|
19
20
|
self.authsignal = AuthsignalInApp(tenantID: tenantID as String, baseURL: baseURL as String)
|
|
20
21
|
|
|
@@ -23,8 +24,8 @@ class AuthsignalInAppModule: NSObject {
|
|
|
23
24
|
|
|
24
25
|
@objc func getCredential(
|
|
25
26
|
_ username: NSString?,
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
28
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
28
29
|
) -> Void {
|
|
29
30
|
guard let authsignal = authsignal else {
|
|
30
31
|
resolve(nil)
|
|
@@ -56,27 +57,38 @@ class AuthsignalInAppModule: NSObject {
|
|
|
56
57
|
@objc func addCredential(
|
|
57
58
|
_ token: NSString?,
|
|
58
59
|
withRequireUserAuthentication requireUserAuthentication: Bool,
|
|
59
|
-
withKeychainAccess keychainAccess: NSString
|
|
60
|
+
withKeychainAccess keychainAccess: NSString?,
|
|
60
61
|
withUsername username: NSString?,
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
withAppAttestation appAttestationDict: NSDictionary?,
|
|
63
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
64
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
63
65
|
) -> Void {
|
|
64
66
|
guard let authsignal = authsignal else {
|
|
65
67
|
resolve(nil)
|
|
66
68
|
return
|
|
67
69
|
}
|
|
68
|
-
|
|
70
|
+
|
|
69
71
|
let tokenStr = token as String?
|
|
70
72
|
let userPresenceRequired = requireUserAuthentication as Bool
|
|
71
73
|
let keychainAccess = getKeychainAccess(value: keychainAccess as String?)
|
|
72
74
|
let usernameStr = username as String?
|
|
73
|
-
|
|
75
|
+
|
|
76
|
+
var appAttestation: AppAttestation? = nil
|
|
77
|
+
if let dict = appAttestationDict,
|
|
78
|
+
let attestationToken = dict["token"] as? String {
|
|
79
|
+
appAttestation = AppAttestation(
|
|
80
|
+
token: attestationToken,
|
|
81
|
+
keyId: dict["keyId"] as? String
|
|
82
|
+
)
|
|
83
|
+
}
|
|
84
|
+
|
|
74
85
|
Task.init {
|
|
75
86
|
let response = await authsignal.addCredential(
|
|
76
87
|
token: tokenStr,
|
|
77
88
|
keychainAccess: keychainAccess,
|
|
78
89
|
userPresenceRequired: userPresenceRequired,
|
|
79
|
-
username: usernameStr
|
|
90
|
+
username: usernameStr,
|
|
91
|
+
appAttestation: appAttestation
|
|
80
92
|
)
|
|
81
93
|
|
|
82
94
|
if let error = response.error {
|
|
@@ -98,8 +110,8 @@ class AuthsignalInAppModule: NSObject {
|
|
|
98
110
|
|
|
99
111
|
@objc func removeCredential(
|
|
100
112
|
_ username: NSString?,
|
|
101
|
-
|
|
102
|
-
|
|
113
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
114
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
103
115
|
) -> Void {
|
|
104
116
|
guard let authsignal = authsignal else {
|
|
105
117
|
resolve(nil)
|
|
@@ -122,8 +134,8 @@ class AuthsignalInAppModule: NSObject {
|
|
|
122
134
|
@objc func verify(
|
|
123
135
|
_ action: NSString?,
|
|
124
136
|
withUsername username: NSString?,
|
|
125
|
-
|
|
126
|
-
|
|
137
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
138
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
127
139
|
) -> Void {
|
|
128
140
|
guard let authsignal = authsignal else {
|
|
129
141
|
resolve(nil)
|
|
@@ -157,8 +169,8 @@ class AuthsignalInAppModule: NSObject {
|
|
|
157
169
|
_ pin: NSString,
|
|
158
170
|
withUsername username: NSString,
|
|
159
171
|
withToken token: NSString?,
|
|
160
|
-
|
|
161
|
-
|
|
172
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
173
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
162
174
|
) -> Void {
|
|
163
175
|
guard let authsignal = authsignal else {
|
|
164
176
|
resolve(nil)
|
|
@@ -197,8 +209,8 @@ class AuthsignalInAppModule: NSObject {
|
|
|
197
209
|
_ pin: NSString,
|
|
198
210
|
withUsername username: NSString,
|
|
199
211
|
withAction action: NSString?,
|
|
200
|
-
|
|
201
|
-
|
|
212
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
213
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
202
214
|
) -> Void {
|
|
203
215
|
guard let authsignal = authsignal else {
|
|
204
216
|
resolve(nil)
|
|
@@ -218,22 +230,24 @@ class AuthsignalInAppModule: NSObject {
|
|
|
218
230
|
|
|
219
231
|
if let error = response.error {
|
|
220
232
|
reject(response.errorCode ?? "unexpected_error", error, nil)
|
|
221
|
-
} else {
|
|
233
|
+
} else if let data = response.data {
|
|
222
234
|
let verifyPinResponse: [String: Any?] = [
|
|
223
|
-
"isVerified":
|
|
224
|
-
"token":
|
|
225
|
-
"userId":
|
|
235
|
+
"isVerified": data.isVerified,
|
|
236
|
+
"token": data.token,
|
|
237
|
+
"userId": data.userId,
|
|
226
238
|
]
|
|
227
239
|
|
|
228
240
|
resolve(verifyPinResponse)
|
|
241
|
+
} else {
|
|
242
|
+
reject("unexpected_error", "No data returned", nil)
|
|
229
243
|
}
|
|
230
244
|
}
|
|
231
245
|
}
|
|
232
246
|
|
|
233
247
|
@objc func deletePin(
|
|
234
248
|
_ username: NSString,
|
|
235
|
-
|
|
236
|
-
|
|
249
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
250
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
237
251
|
) -> Void {
|
|
238
252
|
guard let authsignal = authsignal else {
|
|
239
253
|
resolve(nil)
|
|
@@ -255,7 +269,7 @@ class AuthsignalInAppModule: NSObject {
|
|
|
255
269
|
|
|
256
270
|
@objc func getAllPinUsernames(
|
|
257
271
|
_ resolve: @escaping RCTPromiseResolveBlock,
|
|
258
|
-
|
|
272
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
259
273
|
) -> Void {
|
|
260
274
|
guard let authsignal = authsignal else {
|
|
261
275
|
resolve(nil)
|
package/ios/AuthsignalModule.m
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
@interface RCT_EXTERN_MODULE(AuthsignalModule, NSObject)
|
|
5
5
|
|
|
6
6
|
RCT_EXTERN_METHOD(launch:(NSString)url
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
8
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
9
9
|
|
|
10
10
|
RCT_EXTERN_METHOD(setToken:(NSString)token
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
12
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
13
13
|
|
|
14
14
|
@end
|
|
@@ -18,13 +18,12 @@ class AuthsignalModule: NSObject, ASWebAuthenticationPresentationContextProvidin
|
|
|
18
18
|
|
|
19
19
|
@objc func launch(
|
|
20
20
|
_ url: NSString,
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
22
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
23
23
|
) -> Void {
|
|
24
24
|
let scheme = "authsignal"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
guard let authUrl = URL(string: urlStr!) else {
|
|
25
|
+
|
|
26
|
+
guard let authUrl = URL(string: url as String) else {
|
|
28
27
|
reject("launchError", "Invalid URL", nil)
|
|
29
28
|
|
|
30
29
|
return
|
|
@@ -68,11 +67,11 @@ class AuthsignalModule: NSObject, ASWebAuthenticationPresentationContextProvidin
|
|
|
68
67
|
}
|
|
69
68
|
|
|
70
69
|
@objc func setToken(
|
|
71
|
-
_ token: NSString
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
_ token: NSString?,
|
|
71
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
72
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
74
73
|
) -> Void {
|
|
75
|
-
TokenCache.shared.token = token as String
|
|
74
|
+
TokenCache.shared.token = token as String?
|
|
76
75
|
|
|
77
76
|
resolve("token_set")
|
|
78
77
|
}
|
|
@@ -82,6 +81,11 @@ class AuthsignalModule: NSObject, ASWebAuthenticationPresentationContextProvidin
|
|
|
82
81
|
}
|
|
83
82
|
|
|
84
83
|
func presentationAnchor(for session: ASWebAuthenticationSession) -> ASPresentationAnchor {
|
|
85
|
-
|
|
84
|
+
if let windowScene = UIApplication.shared.connectedScenes
|
|
85
|
+
.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene,
|
|
86
|
+
let keyWindow = windowScene.windows.first(where: { $0.isKeyWindow }) {
|
|
87
|
+
return keyWindow
|
|
88
|
+
}
|
|
89
|
+
return UIWindow()
|
|
86
90
|
}
|
|
87
91
|
}
|
|
@@ -6,30 +6,30 @@
|
|
|
6
6
|
RCT_EXTERN_METHOD(initialize:(NSString)tenantID
|
|
7
7
|
withBaseURL:(NSString)baseURL
|
|
8
8
|
withDeviceID:(NSString)deviceID
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
10
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
11
11
|
|
|
12
12
|
RCT_EXTERN_METHOD(signUp:(NSString)token
|
|
13
13
|
withUsername:(NSString)username
|
|
14
14
|
withDisplayName:(NSString)displayName
|
|
15
15
|
withIgnorePasskeyAlreadyExistsError:(BOOL)ignorePasskeyAlreadyExistsError
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
17
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
18
18
|
|
|
19
19
|
RCT_EXTERN_METHOD(signIn:(NSString)action
|
|
20
20
|
withToken:(NSString)token
|
|
21
21
|
withAutofill:(BOOL)autofill
|
|
22
22
|
withPreferImmediatelyAvailableCredentials:(BOOL)preferImmediatelyAvailableCredentials
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
24
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
25
25
|
|
|
26
26
|
RCT_EXTERN_METHOD(shouldPromptToCreatePasskey:(NSString)username
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
28
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
29
29
|
|
|
30
30
|
RCT_EXTERN_METHOD(isAvailableOnDevice:(RCTPromiseResolveBlock)resolve
|
|
31
|
-
|
|
31
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
RCT_EXTERN_METHOD(cancel)
|
|
34
34
|
|
|
35
35
|
@end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import Security
|
|
2
|
-
import Foundation
|
|
3
1
|
import Authsignal
|
|
2
|
+
import Foundation
|
|
3
|
+
import React
|
|
4
|
+
import Security
|
|
4
5
|
|
|
5
6
|
@objc(AuthsignalPasskeyModule)
|
|
6
7
|
class AuthsignalPasskeyModule: NSObject {
|
|
@@ -14,8 +15,8 @@ class AuthsignalPasskeyModule: NSObject {
|
|
|
14
15
|
_ tenantID: NSString,
|
|
15
16
|
withBaseURL baseURL: NSString,
|
|
16
17
|
withDeviceID deviceID: NSString?,
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
19
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
19
20
|
) -> Void {
|
|
20
21
|
self.authsignal = AuthsignalPasskey(tenantID: tenantID as String, baseURL: baseURL as String, deviceID: deviceID as String?)
|
|
21
22
|
|
|
@@ -27,8 +28,8 @@ class AuthsignalPasskeyModule: NSObject {
|
|
|
27
28
|
withUsername username: NSString?,
|
|
28
29
|
withDisplayName displayName: NSString?,
|
|
29
30
|
withIgnorePasskeyAlreadyExistsError ignorePasskeyAlreadyExistsError: Bool,
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
32
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
32
33
|
) -> Void {
|
|
33
34
|
if (authsignal == nil) {
|
|
34
35
|
resolve(nil)
|
|
@@ -64,8 +65,8 @@ class AuthsignalPasskeyModule: NSObject {
|
|
|
64
65
|
withToken token: NSString?,
|
|
65
66
|
withAutofill autofill: Bool,
|
|
66
67
|
withPreferImmediatelyAvailableCredentials preferImmediatelyAvailableCredentials: Bool,
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
69
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
69
70
|
) -> Void {
|
|
70
71
|
if (authsignal == nil) {
|
|
71
72
|
resolve(nil)
|
|
@@ -85,25 +86,25 @@ class AuthsignalPasskeyModule: NSObject {
|
|
|
85
86
|
|
|
86
87
|
if (response.error != nil) {
|
|
87
88
|
reject(response.errorCode ?? "unexpected_error", response.error, nil)
|
|
88
|
-
} else {
|
|
89
|
+
} else if let data = response.data {
|
|
89
90
|
let signInResponse: [String: Any?] = [
|
|
90
|
-
"isVerified":
|
|
91
|
-
"token":
|
|
92
|
-
"userId":
|
|
93
|
-
"userAuthenticatorId":
|
|
94
|
-
"username":
|
|
95
|
-
"displayName":
|
|
91
|
+
"isVerified": data.isVerified,
|
|
92
|
+
"token": data.token,
|
|
93
|
+
"userId": data.userId,
|
|
94
|
+
"userAuthenticatorId": data.userAuthenticatorId,
|
|
95
|
+
"username": data.username,
|
|
96
|
+
"displayName": data.displayName,
|
|
96
97
|
]
|
|
97
98
|
|
|
98
99
|
resolve(signInResponse)
|
|
100
|
+
} else {
|
|
101
|
+
reject("unexpected_error", "No data returned", nil)
|
|
99
102
|
}
|
|
100
103
|
}
|
|
101
104
|
}
|
|
102
105
|
|
|
103
|
-
@objc func cancel() ->
|
|
106
|
+
@objc func cancel() -> Void {
|
|
104
107
|
authsignal?.cancel()
|
|
105
|
-
|
|
106
|
-
return nil
|
|
107
108
|
}
|
|
108
109
|
|
|
109
110
|
@objc func invalidate() -> Void {
|
|
@@ -112,8 +113,8 @@ class AuthsignalPasskeyModule: NSObject {
|
|
|
112
113
|
|
|
113
114
|
@objc func shouldPromptToCreatePasskey(
|
|
114
115
|
_ username: NSString?,
|
|
115
|
-
|
|
116
|
-
|
|
116
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
117
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
117
118
|
) -> Void {
|
|
118
119
|
if (authsignal == nil) {
|
|
119
120
|
resolve(false)
|
|
@@ -133,7 +134,7 @@ class AuthsignalPasskeyModule: NSObject {
|
|
|
133
134
|
}
|
|
134
135
|
}
|
|
135
136
|
|
|
136
|
-
@objc func isAvailableOnDevice(_ resolve: @escaping RCTPromiseResolveBlock,
|
|
137
|
+
@objc func isAvailableOnDevice(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
|
|
137
138
|
if (authsignal == nil) {
|
|
138
139
|
resolve(false)
|
|
139
140
|
return
|
|
@@ -5,28 +5,28 @@
|
|
|
5
5
|
|
|
6
6
|
RCT_EXTERN_METHOD(initialize:(NSString)tenantID
|
|
7
7
|
withBaseURL:(NSString)baseURL
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
9
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
10
10
|
|
|
11
11
|
RCT_EXTERN_METHOD(getCredential:(RCTPromiseResolveBlock)resolve
|
|
12
|
-
|
|
12
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
13
13
|
|
|
14
14
|
RCT_EXTERN_METHOD(addCredential:(NSString)token
|
|
15
15
|
withRequireUserAuthentication:(BOOL)requireUserAuthentication
|
|
16
16
|
withKeychainAccess:(NSString)keychainAccess
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
18
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
19
19
|
|
|
20
20
|
RCT_EXTERN_METHOD(removeCredential:(RCTPromiseResolveBlock)resolve
|
|
21
|
-
|
|
21
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
22
22
|
|
|
23
23
|
RCT_EXTERN_METHOD(getChallenge:(RCTPromiseResolveBlock)resolve
|
|
24
|
-
|
|
24
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
25
25
|
|
|
26
26
|
RCT_EXTERN_METHOD(updateChallenge:(NSString)challengeId
|
|
27
27
|
withApproval:(BOOL)approved
|
|
28
28
|
withVerificationCode:(NSString)verificationCode
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
30
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
31
31
|
|
|
32
32
|
@end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import Security
|
|
2
|
-
import Foundation
|
|
3
1
|
import Authsignal
|
|
2
|
+
import Foundation
|
|
3
|
+
import React
|
|
4
|
+
import Security
|
|
4
5
|
|
|
5
6
|
@objc(AuthsignalPushModule)
|
|
6
7
|
class AuthsignalPushModule: NSObject {
|
|
@@ -13,8 +14,8 @@ class AuthsignalPushModule: NSObject {
|
|
|
13
14
|
@objc func initialize(
|
|
14
15
|
_ tenantID: NSString,
|
|
15
16
|
withBaseURL baseURL: NSString,
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
18
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
18
19
|
) -> Void {
|
|
19
20
|
self.authsignal = AuthsignalPush(tenantID: tenantID as String, baseURL: baseURL as String)
|
|
20
21
|
|
|
@@ -23,7 +24,7 @@ class AuthsignalPushModule: NSObject {
|
|
|
23
24
|
|
|
24
25
|
@objc func getCredential(
|
|
25
26
|
_ resolve: @escaping RCTPromiseResolveBlock,
|
|
26
|
-
|
|
27
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
27
28
|
) -> Void {
|
|
28
29
|
guard let authsignal = authsignal else {
|
|
29
30
|
resolve(nil)
|
|
@@ -53,9 +54,9 @@ class AuthsignalPushModule: NSObject {
|
|
|
53
54
|
@objc func addCredential(
|
|
54
55
|
_ token: NSString?,
|
|
55
56
|
withRequireUserAuthentication requireUserAuthentication: Bool,
|
|
56
|
-
withKeychainAccess keychainAccess: NSString
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
withKeychainAccess keychainAccess: NSString?,
|
|
58
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
59
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
59
60
|
) -> Void {
|
|
60
61
|
guard let authsignal = authsignal else {
|
|
61
62
|
resolve(nil)
|
|
@@ -90,7 +91,7 @@ class AuthsignalPushModule: NSObject {
|
|
|
90
91
|
|
|
91
92
|
@objc func removeCredential(
|
|
92
93
|
_ resolve: @escaping RCTPromiseResolveBlock,
|
|
93
|
-
|
|
94
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
94
95
|
) -> Void {
|
|
95
96
|
guard let authsignal = authsignal else {
|
|
96
97
|
resolve(nil)
|
|
@@ -110,7 +111,7 @@ class AuthsignalPushModule: NSObject {
|
|
|
110
111
|
|
|
111
112
|
@objc func getChallenge(
|
|
112
113
|
_ resolve: @escaping RCTPromiseResolveBlock,
|
|
113
|
-
|
|
114
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
114
115
|
) -> Void {
|
|
115
116
|
guard let authsignal = authsignal else {
|
|
116
117
|
resolve(nil)
|
|
@@ -142,9 +143,9 @@ class AuthsignalPushModule: NSObject {
|
|
|
142
143
|
@objc func updateChallenge(
|
|
143
144
|
_ challengeId: NSString,
|
|
144
145
|
withApproval approved: Bool,
|
|
145
|
-
withVerificationCode verificationCode: NSString
|
|
146
|
-
|
|
147
|
-
|
|
146
|
+
withVerificationCode verificationCode: NSString?,
|
|
147
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
148
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
148
149
|
) -> Void {
|
|
149
150
|
guard let authsignal = authsignal else {
|
|
150
151
|
resolve(nil)
|
package/ios/AuthsignalQRModule.m
CHANGED
|
@@ -5,29 +5,29 @@
|
|
|
5
5
|
|
|
6
6
|
RCT_EXTERN_METHOD(initialize:(NSString)tenantID
|
|
7
7
|
withBaseURL:(NSString)baseURL
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
9
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
10
10
|
|
|
11
11
|
RCT_EXTERN_METHOD(getCredential:(RCTPromiseResolveBlock)resolve
|
|
12
|
-
|
|
12
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
13
13
|
|
|
14
14
|
RCT_EXTERN_METHOD(addCredential:(NSString)token
|
|
15
15
|
withRequireUserAuthentication:(BOOL)requireUserAuthentication
|
|
16
16
|
withKeychainAccess:(NSString)keychainAccess
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
18
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
19
19
|
|
|
20
20
|
RCT_EXTERN_METHOD(removeCredential:(RCTPromiseResolveBlock)resolve
|
|
21
|
-
|
|
21
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
22
22
|
|
|
23
23
|
RCT_EXTERN_METHOD(claimChallenge:(NSString)challengeId
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
25
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
26
26
|
|
|
27
27
|
RCT_EXTERN_METHOD(updateChallenge:(NSString)challengeId
|
|
28
28
|
withApproval:(BOOL)approved
|
|
29
29
|
withVerificationCode:(NSString)verificationCode
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
31
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
32
32
|
|
|
33
33
|
@end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import Security
|
|
2
|
-
import Foundation
|
|
3
1
|
import Authsignal
|
|
2
|
+
import Foundation
|
|
3
|
+
import React
|
|
4
|
+
import Security
|
|
4
5
|
|
|
5
6
|
@objc(AuthsignalQRCodeModule)
|
|
6
7
|
class AuthsignalQRCodeModule: NSObject {
|
|
@@ -13,8 +14,8 @@ class AuthsignalQRCodeModule: NSObject {
|
|
|
13
14
|
@objc func initialize(
|
|
14
15
|
_ tenantID: NSString,
|
|
15
16
|
withBaseURL baseURL: NSString,
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
18
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
18
19
|
) -> Void {
|
|
19
20
|
self.authsignal = AuthsignalQRCode(tenantID: tenantID as String, baseURL: baseURL as String)
|
|
20
21
|
|
|
@@ -23,7 +24,7 @@ class AuthsignalQRCodeModule: NSObject {
|
|
|
23
24
|
|
|
24
25
|
@objc func getCredential(
|
|
25
26
|
_ resolve: @escaping RCTPromiseResolveBlock,
|
|
26
|
-
|
|
27
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
27
28
|
) -> Void {
|
|
28
29
|
guard let authsignal = authsignal else {
|
|
29
30
|
resolve(nil)
|
|
@@ -53,9 +54,9 @@ class AuthsignalQRCodeModule: NSObject {
|
|
|
53
54
|
@objc func addCredential(
|
|
54
55
|
_ token: NSString?,
|
|
55
56
|
withRequireUserAuthentication requireUserAuthentication: Bool,
|
|
56
|
-
withKeychainAccess keychainAccess: NSString
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
withKeychainAccess keychainAccess: NSString?,
|
|
58
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
59
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
59
60
|
) -> Void {
|
|
60
61
|
guard let authsignal = authsignal else {
|
|
61
62
|
resolve(nil)
|
|
@@ -92,7 +93,7 @@ class AuthsignalQRCodeModule: NSObject {
|
|
|
92
93
|
|
|
93
94
|
@objc func removeCredential(
|
|
94
95
|
_ resolve: @escaping RCTPromiseResolveBlock,
|
|
95
|
-
|
|
96
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
96
97
|
) -> Void {
|
|
97
98
|
guard let authsignal = authsignal else {
|
|
98
99
|
resolve(nil)
|
|
@@ -112,8 +113,8 @@ class AuthsignalQRCodeModule: NSObject {
|
|
|
112
113
|
|
|
113
114
|
@objc func claimChallenge(
|
|
114
115
|
_ challengeId: NSString,
|
|
115
|
-
|
|
116
|
-
|
|
116
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
117
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
117
118
|
) -> Void {
|
|
118
119
|
guard let authsignal = authsignal else {
|
|
119
120
|
resolve(nil)
|
|
@@ -146,9 +147,9 @@ class AuthsignalQRCodeModule: NSObject {
|
|
|
146
147
|
@objc func updateChallenge(
|
|
147
148
|
_ challengeId: NSString,
|
|
148
149
|
withApproval approved: Bool,
|
|
149
|
-
withVerificationCode verificationCode: NSString
|
|
150
|
-
|
|
151
|
-
|
|
150
|
+
withVerificationCode verificationCode: NSString?,
|
|
151
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
152
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
152
153
|
) -> Void {
|
|
153
154
|
guard let authsignal = authsignal else {
|
|
154
155
|
resolve(nil)
|
|
@@ -5,18 +5,18 @@
|
|
|
5
5
|
|
|
6
6
|
RCT_EXTERN_METHOD(initialize:(NSString)tenantID
|
|
7
7
|
withBaseURL:(NSString)baseURL
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
9
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
10
10
|
|
|
11
11
|
RCT_EXTERN_METHOD(enroll:(NSString)phoneNumber
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
13
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
14
14
|
|
|
15
15
|
RCT_EXTERN_METHOD(challenge:(RCTPromiseResolveBlock)resolve
|
|
16
|
-
|
|
16
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
17
17
|
|
|
18
18
|
RCT_EXTERN_METHOD(verify:(NSString)code
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
20
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
21
21
|
|
|
22
22
|
@end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import Security
|
|
2
|
-
import Foundation
|
|
3
1
|
import Authsignal
|
|
2
|
+
import Foundation
|
|
3
|
+
import React
|
|
4
|
+
import Security
|
|
4
5
|
|
|
5
6
|
@objc(AuthsignalSMSModule)
|
|
6
7
|
class AuthsignalSMSModule: NSObject {
|
|
@@ -13,8 +14,8 @@ class AuthsignalSMSModule: NSObject {
|
|
|
13
14
|
@objc func initialize(
|
|
14
15
|
_ tenantID: NSString,
|
|
15
16
|
withBaseURL baseURL: NSString,
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
18
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
18
19
|
) -> Void {
|
|
19
20
|
self.authsignal = AuthsignalSMS(tenantID: tenantID as String, baseURL: baseURL as String)
|
|
20
21
|
|
|
@@ -23,8 +24,8 @@ class AuthsignalSMSModule: NSObject {
|
|
|
23
24
|
|
|
24
25
|
@objc func enroll(
|
|
25
26
|
_ phoneNumber: NSString,
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
28
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
28
29
|
) -> Void {
|
|
29
30
|
if (authsignal == nil) {
|
|
30
31
|
resolve(nil)
|
|
@@ -50,7 +51,7 @@ class AuthsignalSMSModule: NSObject {
|
|
|
50
51
|
|
|
51
52
|
@objc func challenge(
|
|
52
53
|
_ resolve: @escaping RCTPromiseResolveBlock,
|
|
53
|
-
|
|
54
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
54
55
|
) -> Void {
|
|
55
56
|
if (authsignal == nil) {
|
|
56
57
|
resolve(nil)
|
|
@@ -74,8 +75,8 @@ class AuthsignalSMSModule: NSObject {
|
|
|
74
75
|
|
|
75
76
|
@objc func verify(
|
|
76
77
|
_ code: NSString,
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
79
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
79
80
|
) -> Void {
|
|
80
81
|
if (authsignal == nil) {
|
|
81
82
|
resolve(nil)
|