node.js

Create a Login Form With Node.js & MySQL

In our previous example, we saw how we can create a registration form using Node.js and MySQL.

Using that same setup, let us proceed to authenticate the user after he has completed his registration.

First, we create an HTML form for the user to enter his login credentials.

We create a login.html file

<html>  
<body>  
 
<form action="authenticate-controller" method="POST">  
 
Email: <input type="text" name="email">
Password: <input type="password" name="password">
   
<input type="submit" value="Submit">  
</form>
 
   
</body>  
</html> 

Next, we create a script that will authenticate the user. Let us create a file called authenticate-controller.js.

Read Node.js documentation

var Cryptr = require('cryptr');
cryptr = new Cryptr('myTotalySecretKey');
 
var connection = require('./config');
module.exports.authenticate=function(req,res){
    var email=req.body.email;
    var password=req.body.password;
   
   
    connection.query('SELECT * FROM users WHERE email = ?',[email], function (error, results, fields) {
      if (error) {
          res.json({
            status:false,
            message:'there are some error with query'
            })
      }else{
       
        if(results.length >0){
  let decryptedString = cryptr.decrypt(results[0].password);
            if(decryptedString){
                res.json({
                    status:true,
                    message:'successfully authenticated'
                })
            }else{
                res.json({
                  status:false,
                  message:"Email and password does not match"
                 });
            }
          
        }
        else{
          res.json({
              status:false,    
            message:"Email does not exits"
          });
        }
      }
    });
}

Finally we test our authentication script and see the results.

View Comments

Recent Posts

Perks of Being a Copy-Paste Developer

Why borrowing code is a skill—when you understand what you're copying. For years, "copy-paste developer"…

2 weeks ago

Conditionally Disable an Input Field Using React Hook Form

Interactive forms rarely keep every field active all the time. Sometimes an input should only…

2 weeks ago

JavaScript Temporal API

A modern JavaScript API for working with dates, times, time zones, and calendars without the…

2 weeks ago

Node.js Under the Hood

Understanding What Happens Behind the Scenes Node.js looks simple from the outside—you write JavaScript, call…

2 weeks ago

This is How You Cultivate Negative Capability

The need for absolute certainty is the greatest disease the engineering mind faces. The moment…

2 weeks ago

You Don’t have to become the World’s Greatest Programmer.

The software industry is one of the most competitive places to build a career. Every…

2 weeks ago