mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
const User = require('../user');
 | 
						|
const AuthenticationRequired = require('../authentication-required');
 | 
						|
 | 
						|
function unsecureAuthentication(basePath = '', app) {
 | 
						|
    app.post(`${basePath}/api/admin/login`, (req, res) => {
 | 
						|
        const user = req.body;
 | 
						|
        req.session.user = new User({ email: user.email });
 | 
						|
        res.status(200)
 | 
						|
            .json(req.session.user)
 | 
						|
            .end();
 | 
						|
    });
 | 
						|
 | 
						|
    app.use(`${basePath}/api/admin/`, (req, res, next) => {
 | 
						|
        if (req.session.user && req.session.user.email) {
 | 
						|
            req.user = req.session.user;
 | 
						|
        }
 | 
						|
        next();
 | 
						|
    });
 | 
						|
 | 
						|
    app.use(`${basePath}/api/admin/`, (req, res, next) => {
 | 
						|
        if (req.user) {
 | 
						|
            next();
 | 
						|
        } else {
 | 
						|
            return res
 | 
						|
                .status('401')
 | 
						|
                .json(
 | 
						|
                    new AuthenticationRequired({
 | 
						|
                        path: `${basePath}/api/admin/login`,
 | 
						|
                        type: 'unsecure',
 | 
						|
                        message:
 | 
						|
                            'You have to indentify yourself in order to use Unleash.',
 | 
						|
                    })
 | 
						|
                )
 | 
						|
                .end();
 | 
						|
        }
 | 
						|
    });
 | 
						|
 | 
						|
    app.use((req, res, next) => {
 | 
						|
        // Updates active sessions every hour
 | 
						|
        req.session.nowInHours = Math.floor(Date.now() / 3600e3);
 | 
						|
        next();
 | 
						|
    });
 | 
						|
}
 | 
						|
 | 
						|
module.exports = unsecureAuthentication;
 |