angular-trustpass v0.4.0
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 --saveThen add trTrustpass as a dependency for your app:
angular.module('demoApp', ['trTrustpass']);bower
bower install angular-trustpass --saveAdd <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 installBuild
gulpRun the example
gulp demo...and open http://localhost:3000/ to your browser.