You are on page 1of 5

Login.component.

ts:

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { LoginService } from '../login.service';

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {

  constructor(private ls:LoginService,private router:Router) { }

  ngOnInit() {
  }
  submitform(x) {
    console.log(x)
    this.ls.dologin(x).subscribe((data) => {
      if(data["message"]=="successfully login"){
        this.router.navigate(['/home'])
      }
      
      else{
        alert(data["message"])
        
      }
        console.log(data);

      }
      )
}
}
Login Service:

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class LoginService {

  

  constructor(private hc:HttpClient) { }

  doRegister(userobj):Observable<any>{
    console.log(userobj);
    
      return this.hc.post('/User/register',userobj);
      
  }

  dologin(x):Observable<any>{
    console.log(x);
    return this.hc.post('/User/login',x);
  }
}

Server.js:

//create express object
const exp=require("express")
const app=exp();
const path=require('path');

app.use(exp.static(path.join(__dirname,'./dist/myap')))

// //import user and admin app
const userapp=require('./APIS/UserApi')
 const Adminapp=require('./APIS/AdminApi')

// //forward specific api
app.use('/User',userapp)
app.use('/Admin',Adminapp)
app.listen(3000,()=>{
    console.log("server is running");
})
userapi.js:

//create miniexpress app
const exp = require('express')
// const bodyparser=require('body-parser')
const mc = require("mongodb").MongoClient;
const UserExpressapp = exp.Router()
const bcrypt = require('bcrypt')
UserExpressapp.use(exp.json())
const jwt=require("jsonwebtoken")
var dbo;
const dburl = "mongodb://admin:admin@cluster0-shard-00-00-
xvqqz.mongodb.net:27017,cluster0-shard-00-01-xvqqz.mongodb.net:27017,cluster0-
shard-00-02-xvqqz.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-
0&authSource=admin&retryWrites=true&w=majority"
mc.connect(dburl, { useNewUrlParser: true, useUnifiedTopology: true }, (err, c
lientobj) => {
    if (err) {
        console.log("err in db conn", err)
    }
    else {
        dbo = clientobj.db("empdb");
        console.log("connected to db");
    }
});

module.exports = UserExpressapp;

UserExpressapp.post('/register', (req, res) => {
    //check for user existence
    dbo.collection("empcollection").findOne({ name: req.body.name }, (err, use
robj) => {
        if (err) {
            console.log("err is read", err);
        }
        else if (userobj == null) {
            bcrypt.hash(req.body.password, 6, (err, hashedpassword) => {
                if (err) {
                    console.log("err is occured", err)
                }
                req.body.password = hashedpassword;
                console.log("pwds", hashedpassword)
                console.log("pesddd", req.body.password)
                dbo.collection("empcollection").insertOne(req.body, (err, succ
ess) => {
                    if (err) {
                        console.log("err is occured", err)
                    }
                    else {
                        res.send({ message: "user is registered successfully" 
})
                    }
                })
            })
        }
        else {
            res.send({ message: "user is already existed" })
        }

    })
});

UserExpressapp.post('/login', (req, res) => {
    console.log(req.body)
    dbo.collection("empcollection").findOne({name:req.body.name}, (err, userob
j) => {
        if (err) {
            console.log("error is occured", err)
        }
        else if (userobj==null) {
            res.send({message:"user is not existed"});
        }
        else {
                bcrypt.compare(req.body.password,userobj.password,(err, isMatc
hed) => {
                    if (err) {
                        console.log("err is occured", err)
                    }
                    else if (isMatched == false) {
                        res.send({message:"invalid password"})
                       
                    }
                    else {
                        // jwt.sign({ name: userobj.name }, 'secret', { expire
sIn: 60 }, (err, signedToken) => {
                        //     if (err) {
                        //         console.log("err is occured", err)
                        //     }
                        //     else {
                        //         console.log({ message: signedToken })
                        //     }
                        // })
                        res.send({message:"successfully login"})
                        console.log("isMatched",isMatched)
                    }
                })
            

        }
    })
})

You might also like