react-native-authsignal 1.2.2 → 1.3.0
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 +1 -1
- package/android/src/main/java/com/authsignal/react/AuthsignalDeviceModule.kt +48 -0
- package/ios/AuthsignalDeviceModule.m +7 -0
- package/ios/AuthsignalDeviceModule.swift +60 -0
- package/lib/commonjs/device.js +33 -2
- package/lib/commonjs/device.js.map +1 -1
- package/lib/module/device.js +33 -2
- package/lib/module/device.js.map +1 -1
- package/lib/typescript/device.d.ts +6 -1
- package/lib/typescript/device.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +11 -0
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native-authsignal.podspec +1 -1
- package/src/device.ts +40 -0
- package/src/types.ts +13 -0
package/android/build.gradle
CHANGED
|
@@ -119,6 +119,33 @@ class AuthsignalDeviceModule(private val reactContext: ReactApplicationContext)
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
+
@ReactMethod
|
|
123
|
+
fun claimChallenge(
|
|
124
|
+
challengeId: String,
|
|
125
|
+
promise: Promise
|
|
126
|
+
) {
|
|
127
|
+
launch(promise) {
|
|
128
|
+
val response = it.claimChallenge(challengeId)
|
|
129
|
+
|
|
130
|
+
if (response.error != null) {
|
|
131
|
+
val errorCode = response.errorCode ?: defaultError
|
|
132
|
+
|
|
133
|
+
promise.reject(errorCode, response.error)
|
|
134
|
+
} else {
|
|
135
|
+
val data = response.data
|
|
136
|
+
if (data == null) {
|
|
137
|
+
promise.resolve(null)
|
|
138
|
+
} else {
|
|
139
|
+
val map = Arguments.createMap()
|
|
140
|
+
map.putBoolean("success", data.success)
|
|
141
|
+
data.userAgent?.let { map.putString("userAgent", it) }
|
|
142
|
+
data.ipAddress?.let { map.putString("ipAddress", it) }
|
|
143
|
+
promise.resolve(map)
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
122
149
|
@ReactMethod
|
|
123
150
|
fun updateChallenge(
|
|
124
151
|
challengeId: String,
|
|
@@ -139,6 +166,27 @@ class AuthsignalDeviceModule(private val reactContext: ReactApplicationContext)
|
|
|
139
166
|
}
|
|
140
167
|
}
|
|
141
168
|
|
|
169
|
+
@ReactMethod
|
|
170
|
+
fun verify(promise: Promise) {
|
|
171
|
+
launch(promise) {
|
|
172
|
+
val response = it.verify()
|
|
173
|
+
|
|
174
|
+
if (response.error != null) {
|
|
175
|
+
val errorCode = response.errorCode ?: defaultError
|
|
176
|
+
|
|
177
|
+
promise.reject(errorCode, response.error)
|
|
178
|
+
} else {
|
|
179
|
+
val data = response.data!!
|
|
180
|
+
val map = Arguments.createMap()
|
|
181
|
+
map.putString("token", data.token)
|
|
182
|
+
map.putString("userId", data.userId)
|
|
183
|
+
map.putString("userAuthenticatorId", data.userAuthenticatorId)
|
|
184
|
+
map.putString("username", data.username)
|
|
185
|
+
promise.resolve(map)
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
142
190
|
private fun launch(promise: Promise, fn: suspend (client: AuthsignalDevice) -> Unit) {
|
|
143
191
|
coroutineScope.launch {
|
|
144
192
|
authsignal?.let {
|
|
@@ -21,10 +21,17 @@ RCT_EXTERN_METHOD(removeCredential:(RCTPromiseResolveBlock)resolve
|
|
|
21
21
|
RCT_EXTERN_METHOD(getChallenge:(RCTPromiseResolveBlock)resolve
|
|
22
22
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
23
23
|
|
|
24
|
+
RCT_EXTERN_METHOD(claimChallenge:(NSString)challengeId
|
|
25
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
26
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
27
|
+
|
|
24
28
|
RCT_EXTERN_METHOD(updateChallenge:(NSString)challengeId
|
|
25
29
|
withApproval:(BOOL)approved
|
|
26
30
|
withVerificationCode:(NSString)verificationCode
|
|
27
31
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
28
32
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
29
33
|
|
|
34
|
+
RCT_EXTERN_METHOD(verify:(RCTPromiseResolveBlock)resolve
|
|
35
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
36
|
+
|
|
30
37
|
@end
|
|
@@ -124,6 +124,37 @@ class AuthsignalDeviceModule: NSObject {
|
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
+
@objc func claimChallenge(
|
|
128
|
+
_ challengeId: NSString,
|
|
129
|
+
resolver resolve: @escaping RCTPromiseResolveBlock,
|
|
130
|
+
rejecter reject: @escaping RCTPromiseRejectBlock
|
|
131
|
+
) -> Void {
|
|
132
|
+
guard let authsignal = authsignal else {
|
|
133
|
+
resolve(nil)
|
|
134
|
+
return
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
let challenge = challengeId as String
|
|
138
|
+
|
|
139
|
+
Task.init {
|
|
140
|
+
let response = await authsignal.claimChallenge(challengeId: challenge)
|
|
141
|
+
|
|
142
|
+
if let error = response.error {
|
|
143
|
+
reject(response.errorCode ?? "unexpected_error", error, nil)
|
|
144
|
+
} else if let data = response.data {
|
|
145
|
+
let result: [String: String?] = [
|
|
146
|
+
"success": data.success,
|
|
147
|
+
"userAgent": data.userAgent,
|
|
148
|
+
"ipAddress": data.ipAddress,
|
|
149
|
+
]
|
|
150
|
+
|
|
151
|
+
resolve(result)
|
|
152
|
+
} else {
|
|
153
|
+
resolve(nil)
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
127
158
|
@objc func updateChallenge(
|
|
128
159
|
_ challengeId: NSString,
|
|
129
160
|
withApproval approved: Bool,
|
|
@@ -154,4 +185,33 @@ class AuthsignalDeviceModule: NSObject {
|
|
|
154
185
|
}
|
|
155
186
|
}
|
|
156
187
|
}
|
|
188
|
+
|
|
189
|
+
@objc func verify(
|
|
190
|
+
_ resolve: @escaping RCTPromiseResolveBlock,
|
|
191
|
+
rejecter reject: @escaping RCTPromiseRejectBlock
|
|
192
|
+
) -> Void {
|
|
193
|
+
guard let authsignal = authsignal else {
|
|
194
|
+
resolve(nil)
|
|
195
|
+
return
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
Task.init {
|
|
199
|
+
let response = await authsignal.verify()
|
|
200
|
+
|
|
201
|
+
if let error = response.error {
|
|
202
|
+
reject(response.errorCode ?? "unexpected_error", error, nil)
|
|
203
|
+
} else if let data = response.data {
|
|
204
|
+
let result: [String: String?] = [
|
|
205
|
+
"token": data.token,
|
|
206
|
+
"userId": data.userId,
|
|
207
|
+
"userAuthenticatorId": data.userAuthenticatorId,
|
|
208
|
+
"username": data.username,
|
|
209
|
+
]
|
|
210
|
+
|
|
211
|
+
resolve(result)
|
|
212
|
+
} else {
|
|
213
|
+
resolve(nil)
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
157
217
|
}
|
package/lib/commonjs/device.js
CHANGED
|
@@ -86,12 +86,29 @@ class AuthsignalDevice {
|
|
|
86
86
|
return (0, _error.handleErrorCodes)(ex);
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
-
async
|
|
89
|
+
async claimChallenge(_ref2) {
|
|
90
|
+
let {
|
|
91
|
+
challengeId
|
|
92
|
+
} = _ref2;
|
|
93
|
+
await this.ensureModuleIsInitialized();
|
|
94
|
+
try {
|
|
95
|
+
const data = await AuthsignalDeviceModule.claimChallenge(challengeId);
|
|
96
|
+
return {
|
|
97
|
+
data
|
|
98
|
+
};
|
|
99
|
+
} catch (ex) {
|
|
100
|
+
if (this.enableLogging) {
|
|
101
|
+
console.log(ex);
|
|
102
|
+
}
|
|
103
|
+
return (0, _error.handleErrorCodes)(ex);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async updateChallenge(_ref3) {
|
|
90
107
|
let {
|
|
91
108
|
challengeId,
|
|
92
109
|
approved,
|
|
93
110
|
verificationCode = null
|
|
94
|
-
} =
|
|
111
|
+
} = _ref3;
|
|
95
112
|
await this.ensureModuleIsInitialized();
|
|
96
113
|
try {
|
|
97
114
|
const data = await AuthsignalDeviceModule.updateChallenge(challengeId, approved, verificationCode);
|
|
@@ -105,6 +122,20 @@ class AuthsignalDevice {
|
|
|
105
122
|
return (0, _error.handleErrorCodes)(ex);
|
|
106
123
|
}
|
|
107
124
|
}
|
|
125
|
+
async verify() {
|
|
126
|
+
await this.ensureModuleIsInitialized();
|
|
127
|
+
try {
|
|
128
|
+
const data = await AuthsignalDeviceModule.verify();
|
|
129
|
+
return {
|
|
130
|
+
data
|
|
131
|
+
};
|
|
132
|
+
} catch (ex) {
|
|
133
|
+
if (this.enableLogging) {
|
|
134
|
+
console.log(ex);
|
|
135
|
+
}
|
|
136
|
+
return (0, _error.handleErrorCodes)(ex);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
108
139
|
async ensureModuleIsInitialized() {
|
|
109
140
|
if (initialized) {
|
|
110
141
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["initialized","AuthsignalDeviceModule","NativeModules","Proxy","get","Error","LINKING_ERROR","AuthsignalDevice","constructor","tenantID","baseURL","enableLogging","getCredential","ensureModuleIsInitialized","data","ex","console","log","handleErrorCodes","addCredential","token","removeCredential","getChallenge","
|
|
1
|
+
{"version":3,"names":["initialized","AuthsignalDeviceModule","NativeModules","Proxy","get","Error","LINKING_ERROR","AuthsignalDevice","constructor","tenantID","baseURL","enableLogging","getCredential","ensureModuleIsInitialized","data","ex","console","log","handleErrorCodes","addCredential","token","removeCredential","getChallenge","claimChallenge","challengeId","updateChallenge","approved","verificationCode","verify","initialize"],"sourceRoot":"../../src","sources":["device.ts"],"mappings":"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"}
|
package/lib/module/device.js
CHANGED
|
@@ -80,12 +80,29 @@ export class AuthsignalDevice {
|
|
|
80
80
|
return handleErrorCodes(ex);
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
async
|
|
83
|
+
async claimChallenge(_ref2) {
|
|
84
|
+
let {
|
|
85
|
+
challengeId
|
|
86
|
+
} = _ref2;
|
|
87
|
+
await this.ensureModuleIsInitialized();
|
|
88
|
+
try {
|
|
89
|
+
const data = await AuthsignalDeviceModule.claimChallenge(challengeId);
|
|
90
|
+
return {
|
|
91
|
+
data
|
|
92
|
+
};
|
|
93
|
+
} catch (ex) {
|
|
94
|
+
if (this.enableLogging) {
|
|
95
|
+
console.log(ex);
|
|
96
|
+
}
|
|
97
|
+
return handleErrorCodes(ex);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
async updateChallenge(_ref3) {
|
|
84
101
|
let {
|
|
85
102
|
challengeId,
|
|
86
103
|
approved,
|
|
87
104
|
verificationCode = null
|
|
88
|
-
} =
|
|
105
|
+
} = _ref3;
|
|
89
106
|
await this.ensureModuleIsInitialized();
|
|
90
107
|
try {
|
|
91
108
|
const data = await AuthsignalDeviceModule.updateChallenge(challengeId, approved, verificationCode);
|
|
@@ -99,6 +116,20 @@ export class AuthsignalDevice {
|
|
|
99
116
|
return handleErrorCodes(ex);
|
|
100
117
|
}
|
|
101
118
|
}
|
|
119
|
+
async verify() {
|
|
120
|
+
await this.ensureModuleIsInitialized();
|
|
121
|
+
try {
|
|
122
|
+
const data = await AuthsignalDeviceModule.verify();
|
|
123
|
+
return {
|
|
124
|
+
data
|
|
125
|
+
};
|
|
126
|
+
} catch (ex) {
|
|
127
|
+
if (this.enableLogging) {
|
|
128
|
+
console.log(ex);
|
|
129
|
+
}
|
|
130
|
+
return handleErrorCodes(ex);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
102
133
|
async ensureModuleIsInitialized() {
|
|
103
134
|
if (initialized) {
|
|
104
135
|
return;
|
package/lib/module/device.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","handleErrorCodes","LINKING_ERROR","initialized","AuthsignalDeviceModule","Proxy","get","Error","AuthsignalDevice","constructor","tenantID","baseURL","enableLogging","getCredential","ensureModuleIsInitialized","data","ex","console","log","addCredential","token","removeCredential","getChallenge","
|
|
1
|
+
{"version":3,"names":["NativeModules","handleErrorCodes","LINKING_ERROR","initialized","AuthsignalDeviceModule","Proxy","get","Error","AuthsignalDevice","constructor","tenantID","baseURL","enableLogging","getCredential","ensureModuleIsInitialized","data","ex","console","log","addCredential","token","removeCredential","getChallenge","claimChallenge","challengeId","updateChallenge","approved","verificationCode","verify","initialize"],"sourceRoot":"../../src","sources":["device.ts"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AuthsignalResponse, DeviceChallenge, DeviceCredential } from './types';
|
|
1
|
+
import type { AuthsignalResponse, ClaimChallengeResponse, DeviceChallenge, DeviceCredential, VerifyDeviceResponse } from './types';
|
|
2
2
|
interface ConstructorArgs {
|
|
3
3
|
tenantID: string;
|
|
4
4
|
baseURL: string;
|
|
@@ -7,6 +7,9 @@ interface ConstructorArgs {
|
|
|
7
7
|
interface AddCredentialInput {
|
|
8
8
|
token?: string;
|
|
9
9
|
}
|
|
10
|
+
interface ClaimChallengeInput {
|
|
11
|
+
challengeId: string;
|
|
12
|
+
}
|
|
10
13
|
interface UpdateChallengeInput {
|
|
11
14
|
challengeId: string;
|
|
12
15
|
approved: boolean;
|
|
@@ -21,7 +24,9 @@ export declare class AuthsignalDevice {
|
|
|
21
24
|
addCredential({ token }?: AddCredentialInput): Promise<AuthsignalResponse<boolean>>;
|
|
22
25
|
removeCredential(): Promise<AuthsignalResponse<boolean>>;
|
|
23
26
|
getChallenge(): Promise<AuthsignalResponse<DeviceChallenge | undefined>>;
|
|
27
|
+
claimChallenge({ challengeId, }: ClaimChallengeInput): Promise<AuthsignalResponse<ClaimChallengeResponse>>;
|
|
24
28
|
updateChallenge({ challengeId, approved, verificationCode, }: UpdateChallengeInput): Promise<AuthsignalResponse<boolean>>;
|
|
29
|
+
verify(): Promise<AuthsignalResponse<VerifyDeviceResponse>>;
|
|
25
30
|
private ensureModuleIsInitialized;
|
|
26
31
|
}
|
|
27
32
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/device.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,gBAAgB,
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/device.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB;AAeD,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,mBAAmB;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,oBAAoB;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,qBAAa,gBAAgB;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;gBAEX,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,eAAe;IAM3D,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAgB9D,aAAa,CAAC,EAAE,KAAK,EAAE,GAAE,kBAAuB,GAAG,OAAO,CAC9D,kBAAkB,CAAC,OAAO,CAAC,CAC5B;IAgBK,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAexD,YAAY,IAAI,OAAO,CAC3B,kBAAkB,CAAC,eAAe,GAAG,SAAS,CAAC,CAChD;IAgBK,cAAc,CAAC,EACnB,WAAW,GACZ,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAgBtE,eAAe,CAAC,EACpB,WAAW,EACX,QAAQ,EACR,gBAAuB,GACxB,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAoBxD,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;YAgBnD,yBAAyB;CASxC"}
|
|
@@ -64,4 +64,15 @@ export interface DeviceChallenge {
|
|
|
64
64
|
deviceId?: string;
|
|
65
65
|
ipAddress?: string;
|
|
66
66
|
}
|
|
67
|
+
export interface ClaimChallengeResponse {
|
|
68
|
+
success: boolean;
|
|
69
|
+
userAgent?: string;
|
|
70
|
+
ipAddress?: string;
|
|
71
|
+
}
|
|
72
|
+
export interface VerifyDeviceResponse {
|
|
73
|
+
token: string;
|
|
74
|
+
userId: string;
|
|
75
|
+
userAuthenticatorId: string;
|
|
76
|
+
username?: string;
|
|
77
|
+
}
|
|
67
78
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
|
|
|
17
17
|
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
|
18
18
|
|
|
19
19
|
s.dependency "React-Core"
|
|
20
|
-
s.dependency 'Authsignal', '1.
|
|
20
|
+
s.dependency 'Authsignal', '1.2.0'
|
|
21
21
|
|
|
22
22
|
# Don't install the dependencies when we run `pod install` in the old architecture.
|
|
23
23
|
if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
|
package/src/device.ts
CHANGED
|
@@ -2,8 +2,10 @@ import { NativeModules } from 'react-native';
|
|
|
2
2
|
import { handleErrorCodes, LINKING_ERROR } from './error';
|
|
3
3
|
import type {
|
|
4
4
|
AuthsignalResponse,
|
|
5
|
+
ClaimChallengeResponse,
|
|
5
6
|
DeviceChallenge,
|
|
6
7
|
DeviceCredential,
|
|
8
|
+
VerifyDeviceResponse,
|
|
7
9
|
} from './types';
|
|
8
10
|
|
|
9
11
|
interface ConstructorArgs {
|
|
@@ -29,6 +31,10 @@ interface AddCredentialInput {
|
|
|
29
31
|
token?: string;
|
|
30
32
|
}
|
|
31
33
|
|
|
34
|
+
interface ClaimChallengeInput {
|
|
35
|
+
challengeId: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
32
38
|
interface UpdateChallengeInput {
|
|
33
39
|
challengeId: string;
|
|
34
40
|
approved: boolean;
|
|
@@ -113,6 +119,24 @@ export class AuthsignalDevice {
|
|
|
113
119
|
}
|
|
114
120
|
}
|
|
115
121
|
|
|
122
|
+
async claimChallenge({
|
|
123
|
+
challengeId,
|
|
124
|
+
}: ClaimChallengeInput): Promise<AuthsignalResponse<ClaimChallengeResponse>> {
|
|
125
|
+
await this.ensureModuleIsInitialized();
|
|
126
|
+
|
|
127
|
+
try {
|
|
128
|
+
const data = await AuthsignalDeviceModule.claimChallenge(challengeId);
|
|
129
|
+
|
|
130
|
+
return { data };
|
|
131
|
+
} catch (ex) {
|
|
132
|
+
if (this.enableLogging) {
|
|
133
|
+
console.log(ex);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return handleErrorCodes(ex);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
116
140
|
async updateChallenge({
|
|
117
141
|
challengeId,
|
|
118
142
|
approved,
|
|
@@ -137,6 +161,22 @@ export class AuthsignalDevice {
|
|
|
137
161
|
}
|
|
138
162
|
}
|
|
139
163
|
|
|
164
|
+
async verify(): Promise<AuthsignalResponse<VerifyDeviceResponse>> {
|
|
165
|
+
await this.ensureModuleIsInitialized();
|
|
166
|
+
|
|
167
|
+
try {
|
|
168
|
+
const data = await AuthsignalDeviceModule.verify();
|
|
169
|
+
|
|
170
|
+
return { data };
|
|
171
|
+
} catch (ex) {
|
|
172
|
+
if (this.enableLogging) {
|
|
173
|
+
console.log(ex);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
return handleErrorCodes(ex);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
140
180
|
private async ensureModuleIsInitialized() {
|
|
141
181
|
if (initialized) {
|
|
142
182
|
return;
|
package/src/types.ts
CHANGED
|
@@ -74,3 +74,16 @@ export interface DeviceChallenge {
|
|
|
74
74
|
deviceId?: string;
|
|
75
75
|
ipAddress?: string;
|
|
76
76
|
}
|
|
77
|
+
|
|
78
|
+
export interface ClaimChallengeResponse {
|
|
79
|
+
success: boolean;
|
|
80
|
+
userAgent?: string;
|
|
81
|
+
ipAddress?: string;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface VerifyDeviceResponse {
|
|
85
|
+
token: string;
|
|
86
|
+
userId: string;
|
|
87
|
+
userAuthenticatorId: string;
|
|
88
|
+
username?: string;
|
|
89
|
+
}
|