Skip to content

Instantly share code, notes, and snippets.

@victorcarrico
Created February 2, 2017 23:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save victorcarrico/5786e0fb326860b04253f3887edea4f0 to your computer and use it in GitHub Desktop.
Save victorcarrico/5786e0fb326860b04253f3887edea4f0 to your computer and use it in GitHub Desktop.
Django password validators in javascript
import difflib from 'difflib';
// Password Validation
export function userAttributeSimilarityValidator(password, attributes) {
const DEFAULT_USER_ATTRIBUTES = ['first_name', 'last_name', 'email'];
const max_similarity = 0.7;
for (let user_attr of DEFAULT_USER_ATTRIBUTES) {
let value = attributes[user_attr];
let value_parts = value.split(/(\W+)/).concat(value);
for (let value_part of value_parts){
let seqMatcher = new difflib.SequenceMatcher(null, password.toLowerCase(), value_part.toLowerCase());
if (seqMatcher.quickRatio() > max_similarity){
return false;
}
}
}
return true;
}
export function minimumLengthValidator(password) {
const min_length = 8;
if (password.length < min_length){
return false;
} else {
return true;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment