@@ -53,17 +53,24 @@ public class WebAuthComponent {
53
53
/// - url: The URL containing the cookie
54
54
///
55
55
public static func handleIncomingCookie(from url: URL) {
56
- let components = URLComponents(string: url.absoluteString)!
57
56
58
- let cookieParts = [String: String](uniqueKeysWithValues: components.queryItems!.map {
59
- ($0.name, $0.value!)
57
+ guard let components = URLComponents(string: url.absoluteString),
58
+ let queryItems = components.queryItems else {
59
+ return
60
+ }
61
+
62
+ let cookieParts = [String: String](uniqueKeysWithValues: queryItems.compactMap { item in
63
+ item.value.map { (item.name, $0) }
60
64
})
61
65
62
- var domain = cookieParts["domain"]!
66
+ guard var domain = cookieParts["domain"],
67
+ let key = cookieParts["key"],
68
+ let secret = cookieParts["secret"] else {
69
+ return
70
+ }
71
+
63
72
domain.remove(at: domain.startIndex)
64
73
65
- let key: String = cookieParts["key"]!
66
- let secret: String = cookieParts["secret"]!
67
74
let path: String? = cookieParts["path"]
68
75
let expires: String? = cookieParts["expires"]
69
76
let maxAge: String? = cookieParts["maxAge"]
@@ -92,10 +99,7 @@ public class WebAuthComponent {
92
99
cookie += "; secure"
93
100
}
94
101
95
- let existing = UserDefaults.standard.stringArray(forKey: domain)
96
- let new = [cookie]
97
-
98
- UserDefaults.standard.set(new, forKey: domain)
102
+ UserDefaults.standard.set([cookie], forKey: domain)
99
103
100
104
WebAuthComponent.onCallback(
101
105
scheme: components.scheme!,
0 commit comments