Skip to content

Tobils/nodejs-login-JWT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nodejs-login-JWT

aplikasi untuk authentifikasi login form menggunakan Json Web Token


Packages npm

  • npm install express
  • npm install jsonwebtoken
  • npm install nodemon --save
  • npm install dotenv
  • npm install ejs
  • npm install mysql
  • npm install cookie-parser
  • npm install body-parser

Setting project

  • npm init

Edit package.json

{
    "name": "nodejs-login-jwt",
    "version": "1.0.0",
    "description": "aplikasi login menggunakan auth JWT",
    "main": "app.js",
    "dependencies": {
        "dotenv": "^8.2.0",
        "express": "^4.17.1",
        "jsonwebtoken": "^8.5.1",
        "nodemon": "^2.0.2"
    },
    "devDependencies": {},
    "scripts": {
        "start": "nodemon app.js"
    },
    "repository": {
        "type": "git",
        "url": "git+https://github.com/Tobils/nodejs-login-JWT.git"
    },
    "author": "dv.suhada@gmail.com",
    "license": "ISC",
    "bugs": {
        "url": "https://github.com/Tobils/nodejs-login-JWT/issues"
    },
    "homepage": "https://github.com/Tobils/nodejs-login-JWT#readme"
}

Generate privatkey.pem dan publickey.pem

  • openssl genrsa -out private.pem 2048
  • openssl rsa -in private.pem -pubout -out public.pem

Jalankan project :

  • npm start

  • menggunakan konsep MVC [Model View Controller], buat directory sebagai berikut :
    • controller --> untuk controller, pengatur antara model dan views

    • routes --> routing setiap path

      • login home --> method GET, path /
      • login auth --> method POST, path /login --> true ? /admin-pages
      • admin-pages --> method GET, path /admin-pages/data
      • admin-pages --> method GET, path /admin-pages/edit
      • admin-pages --> method GET, path /admin-pages/support
      • logout --> method GET, path /logout
    • model --> load model database

    • views --> tampilan pada user, form login dan pages admin


CRUD [Create, Read, Update, Delete] Databases :

  • mysql -u root -p
  • set password dan user mysql : ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password' : user : root, pass : password
  • create database login_jwt;
  • USE login_jwt;
  • CREATE TABLE table_user ( id smallint unsigned not null auto_increment, name varchar(20) not null, password varchar(20) not null, constraint pk_example primary key (id) );
  • INSERT INTO table_user ( id, name, password) VALUES ( null, 'tobil', '123acbd' );

session, cookies dan token management

  • ketika logout, set cookies expired now. sehingga sessio token jwt harus sama dengan session cookie.
    exports.getLogin = (req, res, next) => {
        res.cookie('no-token', { expires: Date.now() });
        res.render('login', {
            pageTitle: "Login",
            contentTitle: "Selamat Datang",
            path: '/'
        });
    }

Structure directory project :


Gambar 1.1 structure directory


Jalankan Browser

  • localhost:3030/


Gambar 1.2 halaman login




Gambar 1.2 halaman admin


Referensi

About

aplikasi untuk authentifikasi login form menggunakan Json Web Token

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published