GithubHelp home page GithubHelp logo

hclarsen / devise-uncommon_password Goto Github PK

View Code? Open in Web Editor NEW
25.0 3.0 18.0 351 KB

Devise extension to prevent users from using a common password.

License: MIT License

Ruby 7.59% JavaScript 88.20% CSS 3.19% HTML 1.02%
rails ruby authentication devise

devise-uncommon_password's Introduction

Devise Uncommon Password

Build Status Code Climate

Devise::UncommonPassword is an extension for the devise gem, which prevents users from signing up using one of the 100 most common passwords. The list is derived from the darkweb2017_top10K.txt found at: https://github.com/danielmiessler/SecLists/tree/master/Passwords.

Usage

Add the :uncommon_password module to your model:

class AdminUser < ApplicationRecord
  devise :database_authenticatable,
         :recoverable, :rememberable, :trackable, :validatable, :uncommon_password
end

By default, the password is checked against the 100 most common passwords that fit within the minimum and maximum lengths specified in the /config/initializers/devise.rb file. However, if a developer wants to check against a larger list, they may override this default by adding the following line to that same file:

# Number of common passwords to check entered password against.
config.password_matches = 1000

Internationalization and Customization

The default message for users who attempt to use a common password is:

is a very common password. Please choose something harder to guess.

This can be changed by modifying the devise.en.yml file, under errors/messages/common_password. Translations can be provided using the devise translation files in the same location.

en:
  errors:
    messages:
      common_password: 'is a very common password. Please choose something harder to guess.'

Installation

Add this line to your application's Gemfile:

gem 'devise-uncommon_password'

And then execute:

$ bundle install

Contributing

You can contribute by doing the following:

  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
  • Fork it
  • Write your changes
  • Test
  • Commit
  • Send a pull request

License

The gem is available as open source under the terms of the MIT License.

devise-uncommon_password's People

Contributors

andyklimczak avatar dependabot[bot] avatar ethagnawl avatar hclarsen avatar jcody avatar jdmurphy avatar jystewart avatar madejejej avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

devise-uncommon_password's Issues

Devise 4.8 support?

I'm looking to potentially use this gem, but according to the gemspec and rubygems, Devise 4.8 isn't supported, so I'd have to downgrade.

Is it possible to add support for this? I'm not sure if this is trivial or difficult, but this version has been out for about 6 months now.

Still maintained? + Localization support

Is this gem still maintained?

If so, it would be great if you can allow localization of the error message.

This block

def not_common_password
if Devise::Models::UncommonPassword.common_passwords.include? password.downcase
errors.add(:password, "is a very common password. Please choose something harder to guess.")
end
end

Should probably just have something like:

errors.add(:password, :common)

Which will just allow us to define the message in a localization file:

# config/locales/activerecord.en.yml
en:
  activerecord: 
    errors:
      models:
        user:
          attributes:
            password:
              common: "must not be a commonly used password"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.