@@ -2,62 +2,62 @@ import UIKit
2
2
3
3
public class Passkey {
4
4
5
- private let organizationId : String
5
+ private let clientSideKey : String
6
6
private let userDefaults = UserDefaults . standard
7
7
private let lastEvaluationKey = " lastEvaluationDate "
8
8
9
- init ( organizationId : String ) {
10
- self . organizationId = organizationId
9
+ init ( clientSideKey : String ) {
10
+ self . clientSideKey = clientSideKey
11
11
}
12
12
13
- public func evaluateReadiness( ) {
13
+ public func evaluateReadiness( ) async {
14
14
guard canEvaluateReadiness ( ) else {
15
15
print ( " ❌ Evaluate readiness can only be called once in 24 hours. " )
16
16
return
17
17
}
18
- let device = UIDevice . current
19
- let deviceId = device. identifierForVendor? . uuidString ?? " "
20
- let supportsPassekeys = Utilities . deviceOSSupportsPasskeys
21
- let requestHeaders : [ String : String ] = [
18
+ let device = await UIDevice . current
19
+ let requestHeaders : [ String : String ] = await [
22
20
" app_identifier " : Bundle . main. bundleIdentifier ?? " " ,
23
21
" device_os " : device. systemName,
24
22
" device_os_version " : device. systemVersion,
25
- " Content-Type " : " application/json "
23
+ " Content-Type " : " application/json " ,
24
+ " Passage-Version " : " Passage Authentikit iOS \( Authentikit . PACKAGE_VERSION) " ,
25
+ " X-API-KEY " : clientSideKey,
26
26
]
27
+ let deviceId = await device. identifierForVendor? . uuidString ?? " "
28
+ let supportsPassekeys = Utilities . deviceOSSupportsPasskeys
27
29
let requestBody : [ String : Any ] = [
28
- " device_id " : deviceId,
29
- " security_key " : supportsPassekeys,
30
- " platform " : supportsPassekeys,
31
30
" cloud_synced " : supportsPassekeys,
32
- " cross_platform " : supportsPassekeys,
33
31
" conditional_ui " : supportsPassekeys,
32
+ " cross_platform " : supportsPassekeys,
33
+ " device_id " : deviceId,
34
+ " platform " : supportsPassekeys,
35
+ " security_key " : supportsPassekeys,
34
36
]
35
- let urlString = " \( Authentikit . BASE_PATH) /v1/organizations/ \( organizationId ) / analytics/passkey-readiness"
37
+ let urlString = " \( Authentikit . BASE_PATH) /v1/analytics/passkey-readiness "
36
38
guard let url = URL ( string: urlString) else {
37
39
print ( " ❌ Failed evaluate passkey readiness. " )
38
40
return
39
41
}
40
- Task {
41
- var request = URLRequest ( url: url)
42
- request. httpMethod = " POST "
43
- for (key, value) in requestHeaders {
44
- request. setValue ( value, forHTTPHeaderField: key)
45
- }
46
- do {
47
- let jsonData = try JSONSerialization . data ( withJSONObject: requestBody, options: [ ] )
48
- request. httpBody = jsonData
49
- let ( data, response) = try await URLSession . shared. data ( for: request)
50
- guard let httpResponse = response as? HTTPURLResponse ,
51
- ( 200 ... 299 ) . contains ( httpResponse. statusCode)
52
- else {
53
- print ( " ❌ Failed evaluate passkey readiness. " )
54
- return
55
- }
56
- updateLastEvaluationDate ( )
57
- print ( " ✅ Successfully evaluated passkey readiness. " )
58
- } catch {
42
+ var request = URLRequest ( url: url)
43
+ request. httpMethod = " POST "
44
+ for (key, value) in requestHeaders {
45
+ request. setValue ( value, forHTTPHeaderField: key)
46
+ }
47
+ do {
48
+ let jsonData = try JSONSerialization . data ( withJSONObject: requestBody, options: [ ] )
49
+ request. httpBody = jsonData
50
+ let ( data, response) = try await URLSession . shared. data ( for: request)
51
+ guard let httpResponse = response as? HTTPURLResponse ,
52
+ ( 200 ... 299 ) . contains ( httpResponse. statusCode)
53
+ else {
59
54
print ( " ❌ Failed evaluate passkey readiness. " )
55
+ return
60
56
}
57
+ updateLastEvaluationDate ( )
58
+ print ( " ✅ Successfully evaluated passkey readiness. " )
59
+ } catch {
60
+ print ( " ❌ Failed evaluate passkey readiness. " )
61
61
}
62
62
63
63
}
0 commit comments