Security News
Maven Central Adds Sigstore Signature Validation
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
@triangular/password-checker
Advanced tools
Protect your users from re-using a password known to be hacked with this simple Angular directive. Check out the [example page](https://password.akehir.com/) to see how it works. The passwords never leave the browser memory and are not transmitted over th
Protect your users from re-using a password known to be hacked with this simple Angular directive. Check out the example page to see how it works. The passwords never leave the browser memory and are not transmitted over the network.
If you just want to use the library to verify the passwords given by your users, follow the following 4 simple steps. For contributing, or building the library locally, see the section on building the library.
Supported Angular Versions
Angular Version | Password Checker Version |
---|---|
6.x | 1.0.0 |
7.x | 2.2.0 |
8.x | 3.0.0 |
9.x | 4.0.0 |
10.x | 5.0.0 |
11.x | 6.0.0 |
12.x | 7.0.0 |
13.x | 8.0.1 |
14.x | 9.0.0 |
15.x | 10.0.0 |
16.x | 11.0.0 |
17.x | 12.0.0 |
18.x | 13.0.0 - 13.2.0 |
19.x | 14.0.0 |
Install the npm package.
npm i @triangular/password-checker
Then, add the PasswordCheckerModule to the imports of your app.
If you're using standalone components, you can skip this step.
import { NgModule } from '@angular/core';
import { PasswordCheckerModule } from '@triangular/password-checker';
@NgModule({
declarations: [
],
imports: [
PasswordCheckerModule,
],
providers: [],
bootstrap: [],
})
export class AppModule { }
Now you can use the provided directive pwnedPasswordValidator on your reactive forms, to trigger the validation with the pwned password database whenever the form is being validated.
<input
pwnedPasswordValidator
formControlName="password"
type="password"
>
You can configure the directive by providing additional input bindings. Currently the API endpoint, the input debounce time, as well as the minimum occurrence of a password to fail the validation are configurable:
<input
pwnedPasswordValidator
pwnedPasswordMinimumOccurrenceForError="1"
pwnedPasswordApi="https://api.pwnedpasswords.com/range/"
pwnedPasswordApiCallDebounceTime="400"
formControlName="password"
type="password"
>
Alternatively, you can configure your module by using the PasswordCheckerModule.forRoot()
method.
@NgModule({
declarations: [
AppComponent,
ExampleComponent,
],
imports: [
BrowserModule,
FormsModule,
ReactiveFormsModule,
PasswordCheckerModule.forRoot( {
pwnedPasswordApiCallDebounceTime: 1000,
pwnedPasswordMinimumOccurrenceForError: 4,
pwnedPasswordApi: 'https://api.pwnedpasswords.com/range/',
}),
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Don't forget to provide some feedback to your users:
<div
*ngIf="!form.get('password').pending && form.get('password').errors && form.get('password').errors.pwnedPasswordOccurrence"
class="invalid-feedback">
<h2>This password has been seen
<span class="invalid-feedback--highlight">
{{form.get('password').errors.pwnedPasswordOccurrence | number:'1.0-0' }}
</span>
times before</h2>
<p>This password has previously appeared in a data breach and should never be used.
If you've ever used it anywhere before, change it!
</p>
</div>
As a pre-requisite to build the library, you need to install all the dependencies via npm install
or yarn
.
Before the sample app can be run, you need to build the library itself.
npm run ng -- build password-checker-lib --progress=false
After building the library, it is either possible to build the sample app, via
npm run ng -- build example-app --prod --progress=false
,or to run the sample app with a local dev server:
npm run ng -- serve
There are not many tests, but those that are can be run with:
npm run test -- --no-watch --progress=false --code-coverage --browsers ChromeHeadless
The project follows the angular style guide and lints with the following command:
npm run lint
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning.
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE.md file for details
FAQs
Protect your users from re-using a password known to be hacked with this simple Angular directive. Check out the [example page](https://password.akehir.com/) to see how it works. The passwords never leave the browser memory and are not transmitted over th
The npm package @triangular/password-checker receives a total of 0 weekly downloads. As such, @triangular/password-checker popularity was classified as not popular.
We found that @triangular/password-checker demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
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.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.