A Swift library for defining strong password generation rules
Switch branches/tags
Nothing to show
Clone or download
Sam-Spencer and mattt Update README.md (#3)
Fixed a typo
Latest commit a602254 Aug 11, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
PasswordRules.xcodeproj Initial commit Jul 30, 2018
Sources/PasswordRules Initial commit Jul 30, 2018
Tests Initial commit Jul 30, 2018
.gitignore Initial commit Jul 30, 2018
LICENSE.md Initial commit Jul 30, 2018
Package.swift Initial commit Jul 30, 2018
README.md Update README.md (#3) Aug 11, 2018

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)