1
0
mirror of https://github.com/stolksdorf/homebrewery.git synced 2025-12-20 04:11:28 +00:00

Backend of local login working

This commit is contained in:
Scott Tolksdorf
2017-01-06 19:43:16 -05:00
parent a26c4e2092
commit d77fa0a3dc
6 changed files with 30 additions and 13 deletions

View File

@@ -26,16 +26,16 @@ const Homebrew = React.createClass({
return {
url : '',
version : '0.0.0',
user : undefined,
loginPath : '',
user : undefined,
brew : undefined,
brews : []
};
},
componentWillMount: function() {
//TODO: remove
global.account = this.props.account;
global.version = this.props.version;
console.log('user', this.props.user);
console.log('loginpath', this.props.loginPath);
//console.log(mapObject(['version', 'brew', 'account'], this.props));

View File

@@ -7,10 +7,10 @@ const config = require('nconf');
const mw = require('./middleware.js');
const BrewData = require('./brew.data.js');
router.get('/admin', mw.adminLogin, (req, res) => {
router.get('/admin', mw.adminLogin, (req, res, next) => {
return vitreumRender('admin', templateFn, {
url : req.originalUrl,
admin_key : config.get('admin"key')
admin_key : config.get('admin:key')
})
.then((page) => {
return res.send(page)
@@ -19,7 +19,7 @@ router.get('/admin', mw.adminLogin, (req, res) => {
});
//Removes all empty brews that are older than 3 days and that are shorter than a tweet
router.del('/admin/invalid', mw.adminOnly, (req, res)=>{
router.delete('/admin/invalid', mw.adminOnly, (req, res, next)=>{
BrewData.removeInvalid(!!req.query.do_it)
.then((removedCount) => {
return res.join({

View File

@@ -14,9 +14,9 @@ app.use(mw.admin);
//Routes
app.use(require('./interface.routes.js'));
app.use(require('./brew.api.js'));
//app.use(require('./admin.api.js'));
app.use(require('./interface.routes.js'));
app.use(require('./admin.routes.js'));
if(config.get('NODE_ENV') !== 'staging' && config.get('NODE_ENV') !== 'production'){
app.use(require('./dev.routes.js'));

View File

@@ -1,9 +1,24 @@
const router = require('express').Router();
const jwt = require('jwt-simple');
const auth = require('basic-auth');
const config = require('nconf');
router.get('/dev/login', (req, res, next) => {
const user = req.query.user;
if(!user){
return res.send(`
<html>
<body>dev login</body>
<script>
var user = prompt('enter username');
if(user) window.location = '/dev/login?user=' + encodeURIComponent(user);
</script></html>
`);
}
res.cookie('nc_session', jwt.encode({username : req.query.user}, config.get('jwt_secret')));
return res.redirect('/');
});

View File

@@ -1,4 +1,5 @@
const _ = require('lodash');
const config = require('nconf');
const utils = require('./utils.js');
const BrewData = require('./brew.data.js');
const router = require('express').Router();
@@ -18,7 +19,7 @@ const renderPage = (req, res, next) => {
return vitreumRender('homebrew', templateFn, {
url : req.originalUrl,
version : require('../package.json').version,
//TODO: add in login path?
loginPath : config.get('login_path'),
user : req.account && req.account.username,
brews : req.brews,

View File

@@ -37,6 +37,7 @@ const Middleware = {
if(!creds
|| creds.name !== config.get('admin:user')
|| creds.pass !== config.get('admin:pass')){
res.setHeader('WWW-Authenticate', 'Basic realm="example"');
return next(Error.noAdmin());
}
return next();