Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const cookieParser = require("cookie-parser");
- const csrf = require("csurf");
- const bodyParser = require("body-parser");
- const admin = require("firebase-admin");
- const express = require('express');
- const path = require('path');
- const fileupload = require('express-fileupload');
- const serviceAccount = require("./public/serviceAccountKey.json"); // загружаем файл ключа
- admin.initializeApp({
- credential: admin.credential.cert(serviceAccount),
- databaseURL: "https://paradox-website-cd25b.firebaseapp.com",
- });
- const csrfMiddleware = csrf({ cookie: true });
- let initial_path = path.join(__dirname, "public");
- const app = express();
- app.use(express.static(initial_path)); // инициализация рабочей директории
- app.use(fileupload());
- app.engine("html", require("ejs").renderFile);
- app.use(bodyParser.json());
- app.use(express.json());
- app.use(bodyParser.urlencoded({ extended: true }));
- app.use(cookieParser());
- app.use(csrfMiddleware);
- app.all("*", (req, res, next) => {
- var token = req.csrfToken();
- res.cookie("XSRF-TOKEN", token);
- res.locals.csrfToken = token;
- next();
- });
- app.use(function (req, res, next) {
- var token = req.csrfToken();
- res.cookie('XSRF-TOKEN', token);
- res.locals.csrfToken = token;
- next();
- });
- app.get('/googleapis.js', function (req, res) {
- console.log('Редирект в node_modules');
- res.sendFile(__dirname + '/node_modules/googleapis/build/src/index.js');
- });
- app.get('/login', (req, res) => {
- const sessionCookie = req.cookies.session || "";
- admin
- .auth()
- .verifySessionCookie(sessionCookie, true /** checkRevoked */ )
- .then((userData) => {
- console.log("Logged in:", userData.email)
- res.redirect("/admin-cp");
- console.log("Авторизован");
- })
- .catch((error) => {
- console.log("Не авторизован");
- res.sendFile(path.join(initial_path, "login.html"));
- });
- })
- app.get('/register', (req, res) => {
- const sessionCookie = req.cookies.session || "";
- admin
- .auth()
- .verifySessionCookie(sessionCookie, true /** checkRevoked */ )
- .then((userData) => {
- console.log("Logged in:", userData.email)
- res.redirect("/admin-cp");
- })
- .catch((error) => {
- res.sendFile(path.join(initial_path, "register.html"));
- });
- })
- app.get('/signup', (req, res) => {
- res.sendFile(path.join(initial_path, "signup.html"));
- })
- app.get("/admin-cp", function (req, res) {
- const sessionCookie = req.cookies.session || "";
- admin
- .auth()
- .verifySessionCookie(sessionCookie, true )
- .then((userData) => {
- console.log("Logged in:", userData.email)
- console.log('Авторизован. Доступ в админ панель открыт')
- res.sendFile(path.join(initial_path, "admin-cp/main-admin_cp.html"));
- })
- .catch((error) => {
- console.log('Не авторизован. Ошибка', error, ' отсутвует userData')
- res.redirect("/login");
- });
- });
- app.get('./main-admin_cp.html', function (req, res) {
- console.log('ХАКЕР!!');
- });
- app.post("/sessionLogin", (req, res) => {
- const idToken = req.body.idToken.toString();
- const expiresIn = 60 * 60 * 24 * 5 * 1000; // вычисляем, сколько файл куки будет храниться (5 дней в миллисикундах)
- admin
- .auth()
- .createSessionCookie(idToken, {
- expiresIn
- }) // создаем файл куки со сроком хранения
- .then(
- (sessionCookie) => {
- const options = {
- maxAge: expiresIn,
- httpOnly: true
- }; // параметры (http only)
- res.cookie("session", sessionCookie, options); // файл с парамертрами
- res.end(JSON.stringify({
- status: "success"
- }));
- },
- (error) => {
- res.status(401).send("UNAUTHORIZED REQUEST!");
- }
- );
- });
- app.post("/sessionRegister", (req, res) => {
- const idToken = req.body.idToken.toString();
- const expiresIn = 60 * 60 * 24 * 5 * 1000; // вычисляем, сколько файл куки будет храниться (5 дней в миллисикундах)
- admin
- .auth()
- .createSessionCookie(idToken, {
- expiresIn
- }) // создаем файл куки со сроком хранения
- .then(
- (sessionCookie) => {
- const options = {
- maxAge: expiresIn,
- httpOnly: true
- }; // параметры (http only)
- res.cookie("session", sessionCookie, options); // файл с парамертрами
- res.end(JSON.stringify({
- status: "success"
- }));
- },
- (error) => {
- res.status(401).send("UNAUTHORIZED REQUEST!");
- }
- );
- });
- app.get("/sessionLogout", (req, res) => {
- console.log('Выход');
- res.clearCookie("session");
- res.redirect("/login");
- });
- // старое
- app.get('/', (req, res) => {
- res.sendFile(path.join(initial_path, "home.html"));
- })
- app.get('/editor', (req, res) => {
- res.sendFile(path.join(initial_path, "editor.html"));
- })
- //upload link
- app.post('/upload', (req, res) => {
- console.log(req.files);
- let file = req.files.image;
- let date = new Date();
- console.log('test post');
- // image name
- let imagename = date.getDate() + date.getTime() + file.name;
- // image upload path
- let path = 'public/uploads/' + imagename;
- // create upload
- file.mv(path, (err, result) => {
- if (err) {
- throw err;
- } else {
- // our image upload path
- res.json(`uploads/${imagename}`)
- }
- })
- })
- app.get('/:blog', (req, res) => {
- res.sendFile(path.join(initial_path, "blog.html"));
- })
- app.use((req, res) => {
- res.json("404");
- })
- app.listen("3000", () => {
- console.log('listening......');
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement