Skip to content

Commit 15beccf

Browse files
authored
Merge pull request #887 from MarkPerkins/fix-58-remove-force-unwrapping-of-url-parameters
Remove force unwrapping of incoming url parameters
2 parents ad0518e + 5db3852 commit 15beccf

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

templates/swift/Sources/OAuth/WebAuthComponent.swift.twig

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,24 @@ public class WebAuthComponent {
5353
/// - url: The URL containing the cookie
5454
///
5555
public static func handleIncomingCookie(from url: URL) {
56-
let components = URLComponents(string: url.absoluteString)!
5756

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) }
6064
})
6165

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+
6372
domain.remove(at: domain.startIndex)
6473

65-
let key: String = cookieParts["key"]!
66-
let secret: String = cookieParts["secret"]!
6774
let path: String? = cookieParts["path"]
6875
let expires: String? = cookieParts["expires"]
6976
let maxAge: String? = cookieParts["maxAge"]
@@ -92,10 +99,7 @@ public class WebAuthComponent {
9299
cookie += "; secure"
93100
}
94101

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)
99103

100104
WebAuthComponent.onCallback(
101105
scheme: components.scheme!,

0 commit comments

Comments
 (0)