UNPKG

ng-password-strength

Version:
122 lines (89 loc) 3.82 kB
# ng-password-strength Password strength checker wrapped in an angular directive Based on: * [http://blog.brunoscopelliti.com/angularjs-directive-to-test-the-strength-of-a-password][bruno] * [http://www.passwordmeter.com][meter] [bruno]: http://blog.brunoscopelliti.com/angularjs-directive-to-test-the-strength-of-a-password [meter]: http://www.passwordmeter.com ## Examples See `app/index.html` in the respository. [Live example] [live-example] [live-example]: http://subarroca.github.io/ng-password-strength/ ## Usage 1. Bower should add `ng-password-strength.min.js` to you main file (index.html) you can download this by: * using bower and running `bower install ng-password-strength` * downloading the [production version][min] or the [development version][max]. [min]: https://raw.github.com/subarroca/ng-password-strength/master/dist/ng-password-strength.min.js [max]: https://raw.github.com/subarroca/ng-password-strength/master/dist/ng-password-strength.js In your web page: ```html <script src="ng-password-strength/dist/scripts/ng-password-strength.js"></script> <script src="lodash/lodash.js"></script> ``` 2. Bower should add `ng-password-strength` to your main file (index.html). Some of them are not automatically added so you'd better check them. ```html <script src="bower_components/angular/angular.js"></script> <script src="bower_components/lodash/lodash.js"></script> <script src="bower_components/ng-password-strength/dist/ng-password-strength.js"></script> ``` 3. Set `ng-password-strength` as a dependency in your module ```javascript var myapp = angular.module('myapp', ['ngPasswordStrength']) ``` 4. Add ng-password-strength directive to the wanted element, example: ```html <div ng-password-strength="pass"> .... </div> ``` * Accepted addtional params: * strength: value returned [0-100] * css-mode: 'foundation' or 'bootstrap'. Sets inner-class, inner-class-prefix, outter-class-prefix. No need to set one by one * inner-class: inner bar class (i.e. 'progress-bar') * inner-class-prefix: inner bar class prefix (i.e. 'progress-bar-' => 'progress-bar-success') * outter-class-prefix: root element class prefix (i.e. 'progress-bar-' => 'progress-bar-success') * calculation-mode: 'formula' (default) or 'entropy'. Formula is explained below * goal: only used in entropy mode. Fixes the amount to reach. Default: 96 ## Formula Values limited to [0-100] * Pros: * Number of Characters `+ n*4` * Uppercase Letters (if any uppercase) `+ (len-n)*2` * Lowercase Letters (if any lowercase) `+ (len-n)*2` * Numbers (if any letter) `+ n*4` * Symbols `+ n*6` * Middle Numbers or Symbols `+ n*2` * Requirements `+ n*2` * Cons: * Letters Only `- n` * Numbers Only `- n` * Repeat Characters (Case Insensitive) `- (n/len) *10` * Consecutive Uppercase Letters `- n*2` * Consecutive Lowercase Letters `- n*2` * Consecutive Numbers `- n*2` * Sequential Letters (3+) `- n*3` * Sequential Numbers (3+) `- n*3` * Sequential Symbols (3+) `- n*3` ## TODO Create tests ## Changelog ### v0.3.0 * formula calculation moved to factory * added entropy calculation in a new factory * template moved to detached html ### v0.2.0 * added dependency: lodash * removed dependencies: bootstrap, ng-lodash * added classes for further customization * added modes for faster customization: [foundation, bootstrap] ### v0.1.0 * added dependency: ng-lodash * removed dependencies: underscore.string * changed compass to node-sass ### v0.0.8 * lodash update ### v0.0.7 * strength value feedback ### v0.0.6 * change underscore to lodash ### v0.0.1 * formula-based value calculations