import Foundation import KeychainAccess enum APIError : Error { case accessTokenExpired case networkError // Add more error cases as needed } class APIManager { private let keychain = Keychain (service: "com.example.app.refreshToken" ) private let refreshTokenKey = "refreshToken" private var accessToken: String ? func callAPI < T : Codable >( urlString : String , method : String , parameters : [ String : Any ] ? , completion : @escaping ( Result < T , APIError >) -> Void ) { guard let url = URL (string: urlString) else { completion(.failure(.networkError)) return } var request = URLRequest (url: url) request.httpMethod = method // Add access token to the request headers if available if let token = accessToken { request.setValue( "Bearer \(token) " , forHTTPHeaderField: "Aut...
Validation Password or Username in Swift 4.0 Validation Tutorial Password Or Username Swift 4.0. Two type password validation. Most of the validation same confirm password , Password must one uppercase letter, Password must have more then some characters , Password contain some special character , Password must one digit. etc. Type First Password Validation - Password Mini or Max length is 6 - 10. One Alphabet in Password. One Special Character in Password. ^ - Start Anchor. (?=.*[a-z]) -Ensure string has one character. (?=.[$@$#!%?&]) -Ensure string has one special character. {8,} -Ensure password length is 8. $ ...