Socket
Socket
Sign inDemoInstall

ember-cli-password-strength

Package Overview
Dependencies
240
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    ember-cli-password-strength

Ember-CLI wrapper for password-strength checking via https://github.com/dropbox/zxcvbn


Version published
Weekly downloads
199
decreased by-35.6%
Maintainers
1
Install size
18.6 MB
Created
Weekly downloads
 

Readme

Source

Ember-CLI-Password-Strength

Build Status Ember Observer Score Dependency Status Code Climate Codacy Badge

This addon is an Ember-CLI wrapper for zxcvbn, a "realistic password strength estimator". In addition to bringing that package into your project, Ember-CLI-Password-Strength exposes a password-strength shim as an ES6 module you can import anywhere in your application, rather than using the Bower package's global variable.

Check out the Demo!

Installation

ember install ember-cli-password-strength

Configuration

Load the Zxcvbn Library Only When Needed

Zxcvbn is a large library (400kB gzipped). You can load it asynchronously by configuring your ember-cli-build.js. This is the recommended configuration, but is not the default so as to maintain backwards compatibility:

let app = new EmberAddon(defaults, {
  'ember-cli-password-strength': {
    bundleZxcvbn: false
  }
});

Usage

Use the passwordStrength service:

//components/foo.js
import Component from '@ember/component';
import { computed } from '@ember/object';
import { inject } from '@ember/service';

export default Component.extend({
  passwordStrength: inject(),
  password: '',

  /**
   * passwordStrength.strength returns a promise which
   * will resolve after the zxcvbn library has been loaded.
   *
   */
  strength: computed('password', function () {
    const passwordStrength = this.get('passwordStrength');
    passwordStrength.strength(this.get('password')).then(obj => {
      console.log(obj);
    });
  }),

  /**
   * strengthSync expects zxcvbn to be loaded already
   */
  strengthSync: computed('password', function () {
    const passwordStrength = this.get('passwordStrength');
    const obj = passwordStrength.strength(this.get('password');
    console.log(obj);
  }),

  /**
   * If you are using the result in a template then strengthProxy saves 
   * a step in wrapping the returned promise in an Ember.ObjectProxy
   */
  strengthProxy: computed('password', function () {
    const passwordStrength = this.get('passwordStrength');
    const obj = passwordStrength.strength(this.get('password');
    console.log(obj);
  })
});

Preload the zxcvbn library to make the first run of strength() faster:

//routes/foo.js
import Route from '@ember/routing/route';
import { inject } from '@ember/service';

export default Route.extend({
  passwordStrength: inject(),
  beforeModel() {
    const passwordStrength = this.get('passwordStrength');
    return passwordStrength.load();
  }
});

Import the shim (deprecated):

Simply import the password-strength shim into your project:

//components/foo.js
import Ember from 'ember';
import strength from 'password-strength';

const { Component, computed } = Ember;

export default Component.extend({
  password: '',

  strength: computed('password', function () {
    return strength(this.get('password'));
  })
});

Full documentation for the strength checking method can be found here.

Contributing

This README outlines the details of collaborating on this Ember addon.

Installation

  • git clone git@github.com:elwayman02/ember-cli-password-strength.git
  • cd ember-cli-password-strength
  • npm install

Running

Running Tests

  • npm test (Runs ember try:each to test your addon against multiple Ember versions)
  • ember test
  • ember test --server

Building

  • ember build

For more information on using ember-cli, visit https://ember-cli.com/.

Keywords

FAQs

Last updated on 01 Nov 2017

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc