Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require('express');
- const router = express.Router();
- const bcrypt = require('bcrypt-nodejs');
- const User = require('../../models/User');
- router.get('/initialization', async (req, res) => {
- const superUser = await User.find({ role: 'superuser' });
- res.send(superUser);
- });
- router.post('/initialization', (req, res) => {
- const login = req.body.login;
- const password = req.body.password;
- User.findOne({ login }).then((user) => {
- if (!user) {
- bcrypt.hash(password, null, null, (err, hash) => {
- User.create({ login: login, password: hash, role: 'superuser' })
- .then(() => {
- res.send(this);
- })
- .catch((error) => {
- res.status(404).send(error);
- });
- });
- } else {
- res.send(this);
- }
- });
- });
- router.get('/authorization', (req, res) => {
- if (req.session.user) {
- res.status(200).json({ isAuthorization: true });
- } else {
- res.status(200).json({ isAuthorization: false });
- }
- });
- router.post('/authorization', (req, res) => {
- const { session } = req;
- const { login, password } = req.body;
- User.findOne({
- login
- })
- .then((user) => {
- if (!user) {
- res.status(304);
- } else {
- bcrypt.compare(password, user.password, (err, result) => {
- if (!result) {
- res.status(305);
- } else {
- /* Added user to req.session */
- session.user = { id: user._id, name: user.login };
- req.session.save();
- /* TODO: remove log */
- console.log('Session:', req.session.user);
- /* TODO: Change Main on some response. */
- res.status(200).redirect('/main');
- }
- });
- }
- })
- .catch((err) => {
- console.log('4dsfdsfds');
- console.log(err);
- res.status(404).end();
- });
- });
- // GET for logout
- router.get('/logout', (req, res) => {
- console.log('sdfgsgsdgdsgvgfbhhgf');
- // delete session object
- //req.session.destroy(() => {
- //res.redirect('/authentication/authorization');
- //});
- });
- module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement