Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- INDEX
- */
- const express = require('express'),
- app = express(),
- bodyParser = require('body-parser'),
- jwt = require('jsonwebtoken'),
- mongoose = require('mongoose');
- user = require('./routes/user.route');
- // SETTINGS
- app.use(bodyParser.urlencoded({ extended: true }))
- app.use(bodyParser.json())
- app.use(function (req, res, next) {
- res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000');
- res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
- res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
- res.setHeader('Access-Control-Allow-Credentials', true);
- next();
- });
- // DB
- mongoose.connect('mongodb://127.0.0.1/chat');
- // ROUTES
- app.get('/', (req, res) => {
- res.json({success: 'TAK'});
- })
- app.use('/user', user);
- app.listen(4000, () => {
- console.log('Server running on http://localhost:4000')
- })
- /*
- USER ROUTES
- */
- const express = require('express'),
- router = express.Router(),
- bcrypt = require('bcrypt'),
- mongoose = require('mongoose'),
- User = require('../models/user.model'),
- jwt = require('jsonwebtoken');
- // REGISTER
- router.post('/register', (req, res) => {
- User.register.count({email: req.body.email}, (err, count) => {
- if(count > 0) {
- res.json({success: false, message: 'E-mail jest już zajęty!'});
- } else {
- bcrypt.hash(req.body.password, 1, (err, hash) => {
- if(err) {
- res.json({error: true});
- } else {
- const user = new User.register({
- _id: new mongoose.Types.ObjectId(),
- email: req.body.email,
- password: hash,
- firstName: req.body.firstName,
- lastName: req.body.lastName,
- birthDay: req.body.birthDay,
- place: req.body.place,
- age: req.body.age,
- male: req.body.male,
- female: req.body.female
- });
- user.save().then(result => {
- res.json({success: true, message: 'Rejestracja powiodła się pomyślnie!'});
- }).catch(err => {
- res.json({
- error: true
- })
- })
- }
- })
- }
- })
- })
- // LOGIN
- router.post('/login', (req, res) => {
- User.login.findOne({email: req.body.email}).exec().then((user) => {
- console.log(user);
- if(user!=null && user!=undefined) {
- bcrypt.compare(req.body.password, user.password, (err, result) => {
- if(err) {
- return res.json({success: false, message: 'Wystąpił gdfgbłąd. Spróbuj ponownie.'});
- } else if(result) {
- const token = jwt.sign({
- email: user.email,
- _id: user._id
- },
- 'secret',
- {
- expiresIn: 60*2
- });
- return res.json({
- success: true,
- token: token
- })
- } else {
- return res.json({success: false, message: 'Niepoprawny email lub hasło!'});
- }
- })
- } else {
- return res.json({success: false, message: 'Niepoprawny email lub hasło!'});
- }
- }).catch(err => {
- res.json({
- success: false,
- message: 'Wystąpił błąd. Spróbuj ponownie.'
- })
- })
- })
- // CHECK TOKEN
- router.post('/token', (req, res) => {
- const token = req.body.token;
- jwt.verify(token, 'secret', (err, decoded) => {
- if(err) {
- res.status(500).json({success: false});
- } else {
- console.log(decoded);
- res.json({success: true, expired: decoded.exp, email: decoded.email});
- }
- })
- })
- module.exports = router
- /*
- USER MODELS
- */
- const mongoose = require('mongoose');
- const Schema = mongoose.Schema;
- const userRegister = new Schema({
- email: {type: String, required: true},
- password: {type: String, required: true},
- firstName: {type: String, required: true},
- lastName: {type: String, required: true},
- birthDay: {type: Date, required: true},
- place: {type: String, required: true},
- age: {type: Number, required: true},
- admin: {type: Boolean, default: false},
- _id: {type: String, required: true},
- male: {type: Boolean, required: true},
- female: {type: Boolean, required: true}
- })
- const userLogin = new Schema({
- email: {type: String, required: true},
- password: {type: String, required: true}
- })
- var registerModel = mongoose.model('UserRegister', userRegister, 'users');
- var loginModel = mongoose.model('UserLogin', userLogin, 'users');
- module.exports = {
- register: registerModel,
- login: loginModel
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement