@zxcvbn-ts/matcher-pwned
Version:
HaveIBeenPwned Matcher for zxcvbn-ts
50 lines (31 loc) • 1.27 kB
Markdown
# -ts/matcher-pwned
The pwned matcher is an async matcher that will make a k-anonymity password request to the [have i been pwned](https://haveibeenpwned.com/) api.
## Installation
#### npm:
`npm install -ts/core @zxcvbn-ts/matcher-pwned --save`
#### yarn:
`yarn add -ts/core @zxcvbn-ts/matcher-pwned`
## Setup
```js
import { zxcvbn, zxcvbnOptions } from '-ts/core'
import { matcherPwnedFactory } from '-ts/matcher-pwned'
const password = 'somePassword'
const matcherPwned = matcherPwnedFactory(fetch, zxcvbnOptions)
zxcvbnOptions.addMatcher('pwned', matcherPwned)
// @zxcvbn-ts/matcher-pwned is async so zxcvbn will return a promise
zxcvbn(password).then((result) => {
})
```
## Options
### fetch
This needs to be some fetch function either the default browser fetch or a fetch package from nodejs
### url
This is the url to the haveibeenpwned api. By default, it is set to `https://api.pwnedpasswords.com/range/`.
This option can be used if you don't trust haveibeenpwned and download their list to host your own instance of pwnedpasswords
### Can't resolve 'crypto' Error
If you get this error in node browser builds you can fix this by adding this to your package.json
```
"browser": {
"crypto": false
}
```