Skip to content

Commit 2923384

Browse files
move shared utils to core auth package
1 parent 76fa8f3 commit 2923384

File tree

5 files changed

+14
-17
lines changed

5 files changed

+14
-17
lines changed

FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Utils/FacebookUtils.swift renamed to FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Utils/CommonUtils.swift

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,15 @@ import CommonCrypto
22
import Foundation
33
import Security
44

5-
class FacebookUtils {
6-
static func randomNonce(length: Int = 32) -> String {
5+
public class CommonUtils {
6+
static let emailRegex = ".+@([a-zA-Z0-9\\-]+\\.)+[a-zA-Z0-9]{2,63}"
7+
8+
public static func isValidEmail(_ email: String) -> Bool {
9+
let emailPredicate = NSPredicate(format: "SELF MATCHES %@", emailRegex)
10+
return emailPredicate.evaluate(with: email)
11+
}
12+
13+
public static func randomNonce(length: Int = 32) -> String {
714
let characterSet = "0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz-._"
815
var result = ""
916
var remainingLength = length
@@ -31,7 +38,7 @@ class FacebookUtils {
3138
return result
3239
}
3340

34-
static func sha256Hash(of input: String) -> String {
41+
public static func sha256Hash(of input: String) -> String {
3542
guard let data = input.data(using: .utf8) else { return "" }
3643
var hash = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH))
3744
data.withUnsafeBytes {

FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Utils/EmailUtils.swift

Lines changed: 0 additions & 10 deletions
This file was deleted.

FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Views/EmailLinkView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ extension EmailLinkView: View {
4040
.padding(.vertical, 8)
4141
.frame(maxWidth: .infinity)
4242
}
43-
.disabled(!EmailUtils.isValidEmail(email))
43+
.disabled(!CommonUtils.isValidEmail(email))
4444
.padding([.top, .bottom], 8)
4545
.frame(maxWidth: .infinity)
4646
.buttonStyle(.borderedProminent)

FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Views/PasswordRecoveryView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ extension PasswordRecoveryView: View {
3838
.padding(.vertical, 8)
3939
.frame(maxWidth: .infinity)
4040
}
41-
.disabled(!EmailUtils.isValidEmail(email))
41+
.disabled(!CommonUtils.isValidEmail(email))
4242
.padding([.top, .bottom], 8)
4343
.frame(maxWidth: .infinity)
4444
.buttonStyle(.borderedProminent)

FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/FacebookProviderSwift.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ public class FacebookProviderSwift: FacebookProviderProtocol {
3030

3131
public init(scopes: [String]? = nil) {
3232
self.scopes = scopes ?? kDefaultFacebookScopes
33-
rawNonce = FacebookUtils.randomNonce()
34-
shaNonce = FacebookUtils.sha256Hash(of: rawNonce)
33+
rawNonce = CommonUtils.randomNonce()
34+
shaNonce = CommonUtils.sha256Hash(of: rawNonce)
3535
}
3636

3737
@MainActor public func signInWithFacebook(isLimitedLogin: Bool) async throws -> AuthCredential {

0 commit comments

Comments
 (0)