Новое окно после авторизации пользователя в электронном приложении - PullRequest
0 голосов
/ 29 апреля 2020

Я сразу хочу извиниться за моего бедного Энгли sh ... Но мне просто нужна ваша помощь ... Я постараюсь описать, что я пытаюсь сделать. У меня есть сервер, на котором я реализовал RESTfull API для моего электронного приложения.

Код сервера (приложение. js)

const port = 3002;
const express = require('express');
const bodyParser = require('body-parser');
const routes = require('./routes/routes');
const session = require('express-session');
const app = express();

app.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: true,
  cookie: { maxAge: 60000 }
}))

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: true,
}));

routes(app)

const server = app.listen(port, (error) => {
    if (error) return console.log(`Error: ${error}`);

    console.log(`Server listening on port ${server.address().port}`);
});

Код сервера (маршруты. js)

const pool = require('../data/config');

const router = app => {

  app.get('/', function(request, response) {
  	response.sendFile(path.join(__dirname + '/index.html'));
  });

  app.post('/auth', function(request, response) {
  	var username = request.body.username;
  	var password = request.body.password;
    if (username && password) {
        pool.query('SELECT username, password FROM users WHERE username = ? AND password = ?', [username, password], function(error, results, fields) {
  			if (results.length > 0) {
  				request.session.loggedin = true;
  				request.session.username = username;
  				response.redirect('/login');
  			} else {
  				response.send('Incorrect Username and/or Password!');
    			response.end();
        	}
  		});
  	} else {
  		response.send('Please enter Username and Password!');
  		response.end();
  	}
  });

  app.get('/login', function(request, response) {
  	if (request.session.loggedin) {
  		response.send('Welcome back, ' + request.session.username + '!');
  	} else {
  		response.send('Please login to view this page!');
  	}
  	response.end();
  });

  app.post('/users', (request, response) => {
    pool.query('INSERT INTO users SET ?', request.body, (error, result) => {
        if (error) throw error;

        response.status(201).send(`User added with ID: ${result.insertId}`);
      });
  });

}

module.exports = router;

В моем электронном приложении этот код:

Электронное приложение (основное. js)

const path = require('path');
const url = require('url');
const config = require('./config.js');
const {app, BrowserWindow} = require('electron');

let win;

function createWindow() {
  win = new BrowserWindow({
    minWidth: 780,
    maxWidth: 780,
    minHeight: 497,
    maxHeight: 497,
    width: 780,
    height: 497,
    icon: __dirname + "/img/icon.png",
    frame: false,
    hasShadow: false,
    transparent: true
  });
  
  win.loadURL(url.format({
    pathname: path.join(__dirname, 'index.html'),
    protocol: 'file',
    slashes: true
  }));
  
  win.on('closed', () => {
    win = null
  });

};

app.on('ready', function () {
    setTimeout(function() {
        createWindow();
    }, 500);
});

app.on('window-all-closed', () => {
  app.quit();
})

Электронное приложение (индекс. html)

<!DOCTYPE html>
<html lang="ru" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Project</title>
    <link rel="stylesheet" href="all.min.css">
  </head>
  <body>
    <div class="container" id="container">
      <div class="form-container sign-up-container">
        <form action="http://localhost:3002/registration" method="post">
          <h1>Create Account</h1>
          <input type="text" name="username" placeholder="Login" />
          <input type="email" name="email" placeholder="Email" />
          <input type="password" name="password" placeholder="Password" />
        <input type="submit" value="Registration">
        </form>
      </div>
      <div class="form-container sign-in-container">
        <form action="http://localhost:3002/auth" method="post">
          <h1>LoginIn</h1>
          <input type="text" name="username" placeholder="Login" />
          <input type="password" name="password" placeholder="Password" />
          <input type="submit" value="LoginIn">
        </form>
      </div>
    </div>
  </body>
    <script>
      require('./render.js')
    </script>
</html>

Регистрация и авторизация работают. Теперь мне нужно как-то реализовать закрытие окна авторизации и создание нового окна с загрузкой профиля. html файл. Сеанс, созданный во время авторизации, также должен остаться. Подскажите, как я могу это реализовать. Буду очень благодарен за каждый ответ!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...