A Swift library for defining strong password generation rules
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
PasswordRules.xcodeproj
Sources/PasswordRules
Tests
.gitignore
LICENSE.md
Package.swift
README.md

README.md

PasswordRules

A Swift library for defining strong password generator rules.

This functionality is discussed in the NSHipster article Password Rules / UIText​Input​Password​Rules.


Requirements

  • Swift 4.0+

Installation

Swift Package Manager

Add the PasswordRules package to your target dependencies in Package.swift:

import PackageDescription

let package = Package(
  name: "YourProject",
  dependencies: [
    .package(
        url: "https://github.com/NSHipster/PasswordRules",
        from: "1.0.0"
    ),
  ]
)

Then run the swift build command to build your project.

Carthage

To use PasswordRules in your Xcode project using Carthage, specify it in Cartfile:

github "NSHipster/PasswordRules" ~> 1.0.0

Then run the carthage update command to build the framework, and drag the built PasswordRules.framework into your Xcode project.

Usage

Define an array of PasswordRules cases and use the descriptor(for:) method to create a string representation:

import PasswordRules

let rules: [PasswordRule] = [ .required(.upper),
                              .required(.lower),
                              .required(.special),
                              .minLength(20) ]

let descriptor = PasswordRule.descriptor(for: rules)
// "required: upper; required: lower; required: special; minlength: 20;"

Initialize a UITextInputPasswordRules object using the descriptor and pass that to the passwordRules property of a secure text field:

import UIKit

guard #available(iOS 12, *) else {
    fatalError()
}

self.passwordTextField.passwordRules =
    UITextInputPasswordRules(descriptor: descriptor)

License

MIT

Contact

NSHipster (@NSHipster)