Obtuve un código de página de inicio de sesión en la web basado en Express NodeJS.
Tengo muchas aplicaciones de back-end ejecutándose en diferentes puertos. El objetivo es que, cuando un usuario se autentica en el servidor nodeJS, se le redirige automáticamente a su aplicación.
Pero, si puedo montar un proxy http separado y ejecutarlo correctamente, me gustaría incluir el proxy en este código JS de inicio de sesión cuando el usuario esté conectado.
Hay una parte del código a continuación.
const httpProxy = require('http-proxy'); const proxy = httpProxy.createProxyServer(); (...) // http://localhost:3000/auth app.post('/auth', function(request, response) { // Capture the input fields let username = request.body.username; let password = request.body.password; // Ensure the input fields exists and are not empty if (username && password) { // Execute SQL query that'll select the account from the database based on the specified username and password connection.query('SELECT * FROM accounts WHERE username = ? AND password = ?', [username, password], function(error, results, fields) { // If there is an issue with the query, output the error if (error) throw error; // If the account exists if (results.length > 0) { // Authenticate the user request.session.loggedin = true; request.session.username = username; // Redirect to home page proxy.web(req, res, { target: 'http://127.0.0.1:1881' }); //response.redirect('/home'); } else { response.send('Incorrect Username and/or Password!'); } response.end(); }); } else { response.send('Please enter Username and Password!'); response.end(); } }); app.listen(3000); En la response.redirect('/home'); Quiero reemplazarlo por proxy, pero no se agrega nada.
No sé si esto es posible, porque se ejecutan 2 servidores en la misma instancia.
Gracias por tu ayuda.
Respecto
Creo que es mejor usar este paquete si usa express: https://www.npmjs.com/package/express-http-proxy
Puedes usarlo así:
const { createProxyMiddleware, fixRequestBody, responseInterceptor } = require( 'http-proxy-middleware' ); const proxyMiddleware = createProxyMiddleware({ target: 'foo', onProxyReq: fixRequestBody, logLevel: 'debug', changeOrigin: true, secure: false, xfwd: true, ws: true, hostRewrite: true, cookieDomainRewrite: true, headers: { "Connection": "keep-alive", "Content-Type": "text/xml;charset=UTF-8", "Accept": "*/*" }, }); app.use( '/youRoute/**', proxyMiddleware );Y luego, cuando haya iniciado sesión, redirigirá a su ruta proxificada:
res.redirect('/youRoute/');