From 79361bc8a483d01c5ac07ac89f5feda58efdeed4 Mon Sep 17 00:00:00 2001 From: TSN Student Date: Thu, 19 Jul 2018 10:05:06 -0400 Subject: [PATCH] password encryption --- package-lock.json | 93 ++++++++++++-- package.json | 6 +- server.js | 33 ++++- server/models/website/website.model.server.js | 2 +- server/models/widget/widget.schema.server.js | 8 +- server/services/page.service.server.js | 7 -- server/services/user.service.server.js | 114 ++++++++++++------ server/services/website.service.server.js | 10 -- server/services/widget.service.server.js | 10 -- .../Components/User/login/login.component.ts | 17 +-- .../User/profile/profile.component.html | 1 + .../User/profile/profile.component.ts | 43 +++---- .../User/register/register.component.ts | 36 +++--- .../website-list/website-list.component.html | 2 +- .../widget-header.component.html | 10 +- src/app/app.module.ts | 12 +- src/app/app.routing.ts | 24 ++-- src/app/server.js | 46 ++++++- src/app/services/auth-guard.service.ts | 11 ++ src/app/services/page.service.client.ts | 7 -- src/app/services/shared.service.client.ts | 5 + src/app/services/user.service.client.ts | 77 ++++++++++-- src/app/services/widget.service.client.ts | 21 ---- src/assets/loading7.gif | Bin 0 -> 25536 bytes src/styles.css | 17 +++ 25 files changed, 411 insertions(+), 201 deletions(-) create mode 100644 src/app/services/auth-guard.service.ts create mode 100644 src/app/services/shared.service.client.ts create mode 100644 src/assets/loading7.gif diff --git a/package-lock.json b/package-lock.json index ee15466..208f85c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1309,6 +1309,11 @@ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", "dev": true }, + "bcrypt-nodejs": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/bcrypt-nodejs/-/bcrypt-nodejs-0.0.3.tgz", + "integrity": "sha1-xgkX8m3CNWYVZsaBBhwwPCsohCs=" + }, "bcrypt-pbkdf": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", @@ -2303,14 +2308,21 @@ "cookie": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.3.tgz", + "integrity": "sha1-D+MfoZ0AC5X0qt8fU/3CuKIDuqU=", + "requires": { + "cookie": "0.3.1", + "cookie-signature": "1.0.6" + } }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "copy-concurrently": { "version": "1.0.5", @@ -2407,6 +2419,11 @@ } } }, + "crc": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz", + "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms=" + }, "create-ecdh": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.2.tgz", @@ -2916,8 +2933,7 @@ "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "des.js": { "version": "1.0.0", @@ -4131,6 +4147,22 @@ } } }, + "express-session": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.15.6.tgz", + "integrity": "sha512-r0nrHTCYtAMrFwZ0kBzZEXa1vtPVrw0dKvGSrKP4dahwBQ1BJpF2/y1Pp4sCD/0kvxV4zZeclyvfmw0B4RMJQA==", + "requires": { + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "crc": "3.4.4", + "debug": "2.6.9", + "depd": "1.1.2", + "on-headers": "1.0.1", + "parseurl": "1.3.2", + "uid-safe": "2.1.5", + "utils-merge": "1.0.1" + } + }, "extend": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", @@ -8545,8 +8577,7 @@ "on-headers": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", - "dev": true + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" }, "once": { "version": "1.4.0", @@ -8848,8 +8879,7 @@ "parseurl": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", - "dev": true + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" }, "pascalcase": { "version": "0.1.1", @@ -8857,6 +8887,28 @@ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, + "passport": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.0.tgz", + "integrity": "sha1-xQlWkTR71a07XhgCOMORTRbwWBE=", + "requires": { + "passport-strategy": "1.0.0", + "pause": "0.0.1" + } + }, + "passport-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz", + "integrity": "sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4=", + "requires": { + "passport-strategy": "1.0.0" + } + }, + "passport-strategy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", + "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=" + }, "path-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", @@ -8933,6 +8985,11 @@ "pify": "3.0.0" } }, + "pause": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", + "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=" + }, "pbkdf2": { "version": "3.0.16", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", @@ -9418,6 +9475,11 @@ "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", "dev": true }, + "random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" + }, "randomatic": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", @@ -11889,6 +11951,14 @@ } } }, + "uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "requires": { + "random-bytes": "1.0.0" + } + }, "ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", @@ -12190,8 +12260,7 @@ "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { "version": "3.2.1", diff --git a/package.json b/package.json index 2c04ab9..2ac90cb 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,6 @@ "lint": "ng lint", "e2e": "ng e2e", "postinstall": "ng build ---prod" - }, "private": true, "dependencies": { @@ -23,9 +22,14 @@ "@angular/platform-browser": "^5.2.0", "@angular/platform-browser-dynamic": "^5.2.0", "@angular/router": "^5.2.0", + "bcrypt-nodejs": "0.0.3", + "cookie-parser": "^1.4.3", "core-js": "^2.4.1", + "express-session": "^1.15.6", "mongoose": "^5.1.6", "multer": "^1.3.0", + "passport": "^0.4.0", + "passport-local": "^1.0.0", "rxjs": "^5.5.6", "zone.js": "^0.8.19" }, diff --git a/server.js b/server.js index c6793fd..8190aac 100644 --- a/server.js +++ b/server.js @@ -9,6 +9,33 @@ const bodyParser = require('body-parser'); // http library allows us to create http servers const http = require('http'); const path = require('path'); + +const cookieParser = require('cookie-parser'); +const session = require('express-session'); + +app.use(cookieParser()); + +if(process.env.SESSION_SECRET) { + app.use(session({ + secret: process.env.SESSION_SECRET, + resave: true, + saveUninitialized: true })); + +} else { + app.use(session({ + secret: 'test', + resave: true, + saveUninitialized: true})); + +} + + + +var passport = require('passport'); + +app.use(passport.initialize()); +app.use(passport.session()); + // Initialize bodyparser. We are turn on the feature to parse json data. app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); @@ -18,7 +45,7 @@ app.use(express.static(path.join(__dirname, 'dist'))); // CORS - Cross-Origin Resource Sharing // For security purposes, browser only allowed client side to request data from its own server. CORS is a mechanism that determines whether to block or fulfill requests for restricted resources on a web page from another domain outside the domain from which the resource originated. app.use(function(req, res, next) { - res.header("Access-Control-Allow-Origin", "*"); + res.header("Access-Control-Allow-Origin", "http://localhost:4200"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); res.header("Access-Control-Allow-Credentials", "true"); @@ -31,11 +58,7 @@ app.set('port', port); // Create HTTP server const server = http.createServer(app); -app.get("/h", hello); -function hello(req,res){ - res.send("hello"); -} require('./server/app')(app); // For Build: Catch all other routes and return the index file -- BUILDING diff --git a/server/models/website/website.model.server.js b/server/models/website/website.model.server.js index bf39aff..680712f 100644 --- a/server/models/website/website.model.server.js +++ b/server/models/website/website.model.server.js @@ -18,7 +18,7 @@ function findWebsiteById(wid) { } function findAllWebsitesForUser(uid) { - return WebsiteModel.find({developerId: uid}); + return WebsiteModel.find({developerId: uid}).sort({name:1, description:1}); } diff --git a/server/models/widget/widget.schema.server.js b/server/models/widget/widget.schema.server.js index a7497d9..76cb2f0 100644 --- a/server/models/widget/widget.schema.server.js +++ b/server/models/widget/widget.schema.server.js @@ -2,20 +2,14 @@ var mongoose = require('mongoose') var WidgetSchema = mongoose.Schema({ pageId: {type: mongoose.Schema.Types.ObjectId, ref: 'WebsiteModel'}, - widgetType: String, + widgetType: {type: String, enum:['HEADING', 'IMAGE', 'YOUTUBE']}, name: String, text: String, placeholder: String, - description: String, url: String, width: String, height: String, - rows: Number, size: Number, - class: String, - icon: String, - deletable: Boolean, - formatted: Boolean, dateCreated: {type: Date, default: Date.now} }, {collection: 'widget'}) diff --git a/server/services/page.service.server.js b/server/services/page.service.server.js index efefc5b..ae38eda 100644 --- a/server/services/page.service.server.js +++ b/server/services/page.service.server.js @@ -1,12 +1,5 @@ - module.exports = function(app){ const pageModel = require('../models/page/page.model.server.js') -pages = -[ - { _id: "321", name: "Post 1", websiteId: "456", description: "Lorem" }, - { _id: "432", name: "Post 2", websiteId: "456", description: "Lorem" }, - { _id: "543", name: "Post 3", websiteId: "456", description: "Lorem" } -]; app.post('/api/website/:wid/page',createPage); app.get('/api/website/:wid/page',findAllPagesForWebsite); diff --git a/server/services/user.service.server.js b/server/services/user.service.server.js index 6b3e4fe..0272650 100644 --- a/server/services/user.service.server.js +++ b/server/services/user.service.server.js @@ -1,57 +1,106 @@ module.exports = function(app){ const userModel = require('../models/user/user.model.server.js') -users = [ - {_id: "123", username: "alice", password: "alice", firstName: "Alice", lastName: "Wonder", email: "alice@gmail.com"}, - {_id: "234", username: "bob", password: "bob", firstName: "Bob", lastName: "Marley", email: "bob@whatever.com"}, - {_id: "345", username: "charly", password: "charly", firstName: "Charly", lastName: "Garcia", email: "charly@hotmail.com"}, - {_id: "456", username: "shiyu", password: "shiyu", firstName: "Shiyu", lastName: "Wang", email: "swang@ulem.org"} - ]; +var bcrypt = require("bcrypt-nodejs"); + +var passport = require('passport'); +var LocalStrategy = require('passport-local').Strategy; +passport.use(new LocalStrategy(localStrategy)); +function localStrategy(username, password, done) { + userModel.findUserByUsername(username).then( + (user) =>{ + if(user && bcrypt.compareSync(password, user.password)) { + return done(null, user); + } else { + return done(null, false); + } + } + ) + } + + +passport.serializeUser(serializeUser); +passport.deserializeUser(deserializeUser); + app.get('/api/user/:uid', findUserById); app.get('/api/user', findUser); app.post('/api/user', createUser); app.put('/api/user/:uid', updateUser); app.delete('/api/user/:uid', deleteUser); +app.post ('/api/register', register); +app.post ('/api/login', passport.authenticate('local'), login); +app.post('/api/logout', logout); +app.post('/api/loggedIn', loggedin); + + function loggedin(req, res) { + if(req.isAuthenticated()) { + res.send(req.user); + } else { + res.send("0"); + } + } + +function logout(req, res) { + req.logOut(); + res.send(200); +} + +function login(req, res) { + var user = req.user; + res.json(user); +} + + + +function register (req, res) { + var user = req.body; + user.password = bcrypt.hashSync(user.password); + userModel.createUser(user).then( +function(user){ + req.login(user, function(err) { + res.json(user); + }); +}); +} + +function serializeUser(user, done){ + done(null,user); +} + +function deserializeUser(user, done){ + userModel.findUserById(user._id).then( + function(user){ + done(null, user); + }, + function(err){ + done(err, null); + } + ); +} - // function selectUserbyId(uid){ - // for (let x = 0; x < users.length; x++) { - // if (users[x]._id === uid) { - // return users[x]; - // } - // } - // } function findUserById(req, res) { let uid = req.params['uid'] userModel.findUserById(uid).then( data => { res.json(data) - - }) - - - } + }) + } function createUser(req,res){ - var user = req.body; - // user._id = Math.floor(Math.random()*Math.floor(10000)).toString(); - // users.push(user); + var user = req.body userModel.createUser(user).then( (data) =>{ - res.json(data); - + res.json(data); }); - - } function findUser (req, res){ const username = req.query['username']; const password = req.query['password'] if (username && password){ - userModel.findUserByCredentials(username, password).then( data =>{ res.json(data); @@ -60,19 +109,15 @@ function findUser (req, res){ } - - if(username) { userModel.findUserByUsername(username).then( data => { res.json(data); - }) - + }) return; } // res.json(users); res.json(users) - } @@ -84,8 +129,6 @@ function updateUser(req, res){ data =>{ res.json(data); }) - - } @@ -97,10 +140,7 @@ function deleteUser(req,res){ res.json(data); } ) - // var oldUser = selectUserById(userId); - // var index = users.indexOf(oldUser); - // users.splice(index, 1); - + } diff --git a/server/services/website.service.server.js b/server/services/website.service.server.js index cdd31f4..115631c 100644 --- a/server/services/website.service.server.js +++ b/server/services/website.service.server.js @@ -2,16 +2,6 @@ module.exports = function(app){ const websiteModel = require('../models/website/website.model.server.js') - websites = -[ - { _id: "123", name: "Facebook", developerId: "456", description: "Lorem" }, - { _id: "234", name: "Tweeter", developerId: "456", description: "Lorem" }, - { _id: "456", name: "Gizmodo", developerId: "456", description: "Lorem" }, - { _id: "890", name: "Go", developerId: "123", description: "Lorem" }, - { _id: "567", name: "Tic Tac Toe", developerId: "123", description: "Lorem" }, - { _id: "678", name: "Checkers", developerId: "123", description: "Lorem" }, - { _id: "789", name: "Chess", developerId: "234", description: "Lorem" } -]; app.post('/api/user/:uid/website',createWebsite); app.get('/api/user/:uid/website',findAllWebsitesForUser); diff --git a/server/services/widget.service.server.js b/server/services/widget.service.server.js index ca468ea..036a548 100644 --- a/server/services/widget.service.server.js +++ b/server/services/widget.service.server.js @@ -3,16 +3,6 @@ module.exports = function(app){ var multer = require('multer'); // npm install multer --save var upload = multer({ dest: './dist/assets/uploads'}) var widgetModel = require('../models/widget/widget.model.server.js') -widgets = -[ - { _id: "123", widgetType: "HEADING", pageId: "321", size: 2, text: "GIZMODO"}, - { _id: "234", widgetType: "HEADING", pageId: "321", size: 4, text: "Lorem ipsum"}, - { _id: "345", widgetType: "IMAGE", pageId: "321", width: "100%", url: "https://www.w3schools.com/w3css/img_lights.jpg"}, - { _id: "456", widgetType: "HTML", pageId: "321", text: "

Lorem ipsum

"}, - { _id: "567", widgetType: "HEADING", pageId: "321", size: 4, text: "Lorem ipsum"}, - { _id: "678", widgetType: "YOUTUBE", pageId: "321", width: "100%", url: "https://youtu.be/AM2Ivdi9c4E" }, - { _id: "789", widgetType: "HTML", pageId: "321", text: "

Lorem ipsum

"} -]; app.post('/api/page/:pid/widget',createWidget); app.get('/api/page/:pid/widget',findAllWidgetsForUser); diff --git a/src/app/Components/User/login/login.component.ts b/src/app/Components/User/login/login.component.ts index 15d97da..280da92 100644 --- a/src/app/Components/User/login/login.component.ts +++ b/src/app/Components/User/login/login.component.ts @@ -4,6 +4,7 @@ import { UserService } from '../../../services/user.service.client' import { User } from '../../../models/user.model.client' import { Router } from '@angular/router'; import {ActivatedRoute } from '@angular/router' +import {SharedService} from '../../../services/shared.service.client' @Component({ selector: 'app-login', templateUrl: './login.component.html', @@ -21,7 +22,7 @@ errorFlag: boolean; errorMsg = 'Invaild username or password!'; - constructor(private activatedRoute: ActivatedRoute, private userService: UserService, private router: Router) { + constructor(private activatedRoute: ActivatedRoute, private userService: UserService, private router: Router, private sharedService: SharedService) { } @@ -32,17 +33,11 @@ errorMsg = 'Invaild username or password!'; this.username = this.loginForm.value.username; this.password = this.loginForm.value.password; - this.userService.findUserByCredentials(this.username,this.password).subscribe( - (user: User)=>{ - if(user){ - this.router.navigate(['/user/'+user._id]) - this.errorFlag = false; + this.userService.login(this.username,this.password).subscribe( + (data: any)=>{ + this.sharedService.user = data; + this.router.navigate(['/user'])}, - }else{ - this.errorFlag = true; - - } -}, (error: any) =>{ this.errorFlag = true; diff --git a/src/app/Components/User/profile/profile.component.html b/src/app/Components/User/profile/profile.component.html index 82dcdfe..ab0d174 100644 --- a/src/app/Components/User/profile/profile.component.html +++ b/src/app/Components/User/profile/profile.component.html @@ -8,6 +8,7 @@
+
Please Enter a Username
Username is already taken
Updated successfully
diff --git a/src/app/Components/User/profile/profile.component.ts b/src/app/Components/User/profile/profile.component.ts index a83d160..d0c1006 100644 --- a/src/app/Components/User/profile/profile.component.ts +++ b/src/app/Components/User/profile/profile.component.ts @@ -3,7 +3,8 @@ import { ActivatedRoute } from '@angular/router'; import { UserService} from '../../../services/user.service.client'; import { User } from '../../../models/user.model.client'; import { NgForm } from '@angular/forms'; - +import {SharedService} from '../../../services/shared.service.client' +import {Router } from '@angular/router' @Component({ selector: 'app-profile', templateUrl: './profile.component.html', @@ -31,17 +32,14 @@ user: User ={ aUser:User - constructor(private userService: UserService, private activatedRoute: ActivatedRoute) {} + constructor(private userService: UserService, private activatedRoute: ActivatedRoute, private sharedService: SharedService, private router: Router) {} @ViewChild('f') profileForm : NgForm; ngOnInit() { -this.activatedRoute.params.subscribe( - params =>{ - this.uid =params['uid']; - this.userService.findUserById(this.uid).subscribe( - (user:User) => { - this.user = user; + + this.user = this.sharedService.user + this.uid = this.user._id; this.username = this.user.username; this.email = this.user.email; this.firstName = this.user.firstName; @@ -49,9 +47,7 @@ this.activatedRoute.params.subscribe( this.oldUsername = this.user.username; - }) - - }) + } update(){ @@ -91,21 +87,14 @@ this.activatedRoute.params.subscribe( } - - // }else { - // const updateUser : User ={ - // _id : this.user._id, - // username: this.username, - // password: this.user.password, - // firstName:this.firstName, - // lastName: this.lastName, - // email: this.email - // } - - // this.usernameTaken = false; - // this.submitSuccess = true; - // this.userService.updateUser(this.uid,updateUser); - - // } + } + logout() { + this.userService.logout() + .subscribe( + (data: any) => this.router.navigate(['/login']) + + ); + +} } diff --git a/src/app/Components/User/register/register.component.ts b/src/app/Components/User/register/register.component.ts index c5e3a42..bb1bf37 100644 --- a/src/app/Components/User/register/register.component.ts +++ b/src/app/Components/User/register/register.component.ts @@ -3,6 +3,7 @@ import { NgForm } from '@angular/forms' import { UserService } from '../../../services/user.service.client' import { User } from '../../../models/user.model.client' import { Router } from '@angular/router' +import { SharedService} from '../../../services/shared.service.client' @Component({ selector: 'app-register', templateUrl: './register.component.html', @@ -16,7 +17,7 @@ password: string; verifyPassword: string; passwordError: boolean; usernameError: boolean; - constructor(private userService: UserService, private router: Router) { } + constructor(private userService: UserService, private router: Router, private sharedService: SharedService) { } ngOnInit() { this.passwordError = false; @@ -36,32 +37,31 @@ if(this.password !== this.verifyPassword){ this.userService.findUserByUsername(this.username).subscribe( (data: any) =>{ if(!data){ - const newUser: User ={ - username : this.username, - password : this.password, - firstName : '', - lastName : '', - email : ''}; - - this.userService.createUser(newUser).subscribe( - (user: User) =>{ - var id = user._id - this.router.navigate(['/user/', id]) - }, - - (error: any) =>{ + this.userService.register(this.username, this.password).subscribe( + (data: User) => { + this.sharedService.user = data; + this.router.navigate(['/user']); + }, + + + (error: any) =>{ this.usernameError = true; - +}) -}); -}else { +} else { this.usernameError = true; } + }) + } + } + } + + // if(user){ // this.usernameError = true // this.passwordError= false; diff --git a/src/app/Components/Website/website-list/website-list.component.html b/src/app/Components/Website/website-list/website-list.component.html index d078fe9..4b0aace 100644 --- a/src/app/Components/Website/website-list/website-list.component.html +++ b/src/app/Components/Website/website-list/website-list.component.html @@ -1,7 +1,7 @@