Skip to content
This repository has been archived by the owner before Nov 9, 2022. It is now read-only.

NSHipster/PasswordRules

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

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)

About

A Swift library for defining strong password generation rules

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages