angular-trustpass
v0.4.0
Published
A simple password strength meter and validator inspired by MailChimp's signup form.
Downloads
12
Readme
Angular Trustpass
The trusty password security checklist.
This is a simple password strength meter & validator inspired by MailChimp's signup form.
Done by folks at Trustroots.org
install
You can install this package either with npm
or with bower
.
npm
npm install angular-trustpass --save
Then add trTrustpass
as a dependency for your app:
angular.module('demoApp', ['trTrustpass']);
bower
bower install angular-trustpass --save
Add <script>
and <link>
to your page:
<link rel="stylesheet" href="bower_modules/angular-trustpass/dist/tr-trustpass.css">
<script src="bower_modules/angular-trustpass/dist/tr-trustpass.js"></script>
Then add trTrustpass
as a dependency for your app:
angular.module('demoApp', ['trTrustpass']);
Usage
Basic
<input type="password" tr-trustpass>
With options
<input type="password" tr-trustpass="{special: false}" ng-minlength="9">
Using with Bootstrap classes:
<form name="demo">
<div class="form-group" ng-class="{'has-error': demoForm.password.$invalid && demoForm.password.$dirty,
'has-success': !demoForm.password.$invalid && demoForm.password.$dirty}">
<label for="password">Password</label>
<input id="password"
class="form-control"
type="password"
name="password"
placeholder="Password"
tr-trustpass="{maximum: true, special: false, messageGuide: 'Make sure your password meets these requirements:'}"
ng-minlength="9"
ng-maxlength="90"
ng-model="password">
</div>
<button type="submit" ng-disabled="demo.password.$invalid" class="btn btn-primary">Sign in</button>
</form>
Password model will have $invalid
set true and $error.trustpass
set true when any of the tests fail. You can then style your form or input with Angular validation classes.
Options
Pass a json object to tr-trustpass
like this: tr-trustpass="{maximum: true, special: false}"
Available tests
| Option | Default | Description | |------------|---------|---------------------------------------------------------------------------------------------------------------------------| | lowercase | true | Find a-z | | uppercase | true | Find A-Z | | number | true | Find 0-9 | | special | true | Find a non-word character or the _ (underscore) character | | minimum | true | Check minimum length. Defaults to 8 but you can set it with ng-minlength or minlength attributes, or maxlength option. | | maximum | false | Check maximum length. Defaults to 50 but you can set it with ng-maxlength or maxlength attributes, or maxlength option). | | word | false | Find a word character.
"A word character" is a character from a-z, A-Z, 0-9, including the _ (underscore) character.
Other settings
| Option | Default | Description | |--------------|-------------------------------------------------|------------------------------------------------------------------------------| | toggle | false | Should checklist be visible only on focus? | | keepHeight | false | Should dropdown area keep its initially rendered height? | | minlength | 8 | Minimum length of the password, if minimum test is enabled (on by default). | | maxlength | 50 | Maximum length of the password, if maximum test is enabled (off by default). |
Labels and messages
| Option | Default | Description | |-----------------|-------------------------------------------------|---------------------------------------------------------------------------------------------------------------------| | messageDone | Great! Your password is secure. | A message shown after all tests pass. | | messageGuide | | A message on top of checklist. Leave empty to hide. | | lowercaseLabel | One lowercase character | Label for the lowercase test | | uppercaseLabel | One uppercase character | Label for the uppercase test | | numberLabel | One number | Label for the number test | | specialLabel | One special character | Label for the special test | | minimumLabel | characters minimum | Label for the minimum test. The ng-minlength value will be prepend to the label (f.i.: 8 characters minimum) | | maximumLabel | characters maximum | Label for the maximum test. The ng-maxlength value will be prepend to the label (f.i.: 8 characters maximum) | | wordLabel | Alphanumeric characters | Label for the word test |
Development
Ideas and pull requests totally welcome!
Install dependencies
npm install
Build
gulp
Run the example
gulp demo
...and open http://localhost:3000/ to your browser.