New post
This commit is contained in:
parent
5f4c17c09e
commit
fd136892e8
55
content/post/quick-tips-javascript-password-verify.md
Normal file
55
content/post/quick-tips-javascript-password-verify.md
Normal file
@ -0,0 +1,55 @@
|
||||
---
|
||||
title: "Quick Tips: Javascript Password Verification"
|
||||
date: 2017-10-28T10:30:49-04:00
|
||||
draft: false
|
||||
---
|
||||
|
||||
I just had to write client-side password verification for work at [Verodin](https://verodin.com),
|
||||
and it was kinda fun to do. I'll talk through my approach, and hopefully someone down the road searching
|
||||
for front-end tips desperately finds this post like a light at the end of a tunnel.
|
||||
|
||||
The main idea is to bind to event listeners on the form inputs we care about, so that we can receive those events
|
||||
with our password checking functions. As soon as we bind an Object to the event listener, that object has
|
||||
"subscribed" to those events and will receive messages every time that event happens.
|
||||
|
||||
I will be binding to the [keyup](https://developer.mozilla.org/en-US/docs/Web/Events/keyup) event to provide the user
|
||||
with password verification as they type!
|
||||
|
||||
The first step is to setup an html form to work with. I also included a `<p>` tag to hold a meaningful message for the user.
|
||||
|
||||
```html
|
||||
...
|
||||
<p id="message">Choose a password</p>
|
||||
<form>
|
||||
<input type="password" id="passwordInput"></input>
|
||||
<input type="password" id="verifyPassword"></input>
|
||||
</form>
|
||||
...
|
||||
|
||||
```
|
||||
|
||||
Once we have this form, we can start coding up some Javascript. We need to write a function that binds to the
|
||||
`onkeyup` events of both inputs, and then have that function update the page in a meaningful way if the passwords
|
||||
don't match. First step is to write the function, then the next step is to write the bindings.
|
||||
|
||||
```javascript
|
||||
|
||||
// Verify passwords match, update message element
|
||||
function verifyPassword() {
|
||||
var passwordInput = document.getElementById("passwordInput");
|
||||
var verifyPassword = document.getElementById("verifyPassword");
|
||||
var message = document.getElementById("message");
|
||||
|
||||
message.textContent = passwordInput.value != verifyPassword.value ? "Not matching" : "Matching";
|
||||
}
|
||||
|
||||
// Bind to onkeyup for passwordInput and verifyPassword
|
||||
document.getElementById("passwordInput").onkeyup = verifyPassword;
|
||||
document.getElementById("verifyPassword").onkeyup = verifyPassword;
|
||||
```
|
||||
|
||||
`verifyPassword` will now receive messages every time the keyup event fires when `passwordInput` or `verifyPassword` are
|
||||
in focus (when users are typing in those boxes). The verification function will update the message box accordingly and alert the user
|
||||
in real time if the passwords they type match!
|
||||
|
||||
Thanks for reading, any tips, comments, concerns, or suggestions, leave me a comment below!
|
Loading…
Reference in New Issue
Block a user