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
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.
$ -End Anchor.
See Example -
func isPasswordValidate(_ password : String)->Bool{
let validatePassword= NSPredicate(format: "SELF MATCHES %@", "^(?=.*[a-z])(?=.*[$@$#!%*?&])[A-Za-z\\d$@$#!%*?&]{8,}")
return validatePassword.evaluate(with: password)
}
Type Second Password Validation -
Password length is Fixed .
Fixed Upper Case letters.
Fixed Special Character.
Fixed Number
Fixed letters of lowercase in password.
^ -Start Anchor.
(?=.*[A-Z].*[A-Z]) -Ensure string has two uppercase letters.
(?=.[$@$#!%?&]) -Ensure string has one special character.
(?=.*[0-9].*[0-9]) -Ensure string has two digits.
(?=.*[a-z].*[a-z].?*[a-z]) -Ensure string has three lowercase letters.
{8,} -Ensure password length is 8.
$ -End Anchor.
See Example -
func isPasswordValidate(_ password : String) -> Bool{
let validatePassword= NSPredicate(format: "SELF MATCHES %@", "^(?=.*[A-Z].*[A-Z])(?=.*[!@#$&*])(?=.*[0-9].*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8}$")
return validatePassword.evaluate(with: password)
}
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.
$ -End Anchor.
See Example -
func isPasswordValidate(_ password : String)->Bool{
let validatePassword= NSPredicate(format: "SELF MATCHES %@", "^(?=.*[a-z])(?=.*[$@$#!%*?&])[A-Za-z\\d$@$#!%*?&]{8,}")
return validatePassword.evaluate(with: password)
}
Type Second Password Validation -
Password length is Fixed .
Fixed Upper Case letters.
Fixed Special Character.
Fixed Number
Fixed letters of lowercase in password.
^ -Start Anchor.
(?=.*[A-Z].*[A-Z]) -Ensure string has two uppercase letters.
(?=.[$@$#!%?&]) -Ensure string has one special character.
(?=.*[0-9].*[0-9]) -Ensure string has two digits.
(?=.*[a-z].*[a-z].?*[a-z]) -Ensure string has three lowercase letters.
{8,} -Ensure password length is 8.
$ -End Anchor.
See Example -
func isPasswordValidate(_ password : String) -> Bool{
let validatePassword= NSPredicate(format: "SELF MATCHES %@", "^(?=.*[A-Z].*[A-Z])(?=.*[!@#$&*])(?=.*[0-9].*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8}$")
return validatePassword.evaluate(with: password)
}
Congratulation for the great post. Those who come to read your Information will find lots of helpful and informative tips. Apple Developer Login
ReplyDelete