diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-09-17 00:46:06 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-09-17 00:46:06 +0200 |
| commit | d5d76a51cf79238c3177aa507213191d279d45ed (patch) | |
| tree | e89bb1e6c39267b3eeccdab8d6d1d8a2dfd2b535 /app/server/util | |
| parent | d3e4bb3ed2585859a3adeb7eeff35b7c75ebd840 (diff) | |
signup works
Diffstat (limited to 'app/server/util')
| -rw-r--r-- | app/server/util/auth.js | 55 |
1 files changed, 24 insertions, 31 deletions
diff --git a/app/server/util/auth.js b/app/server/util/auth.js index d280927..fde0263 100644 --- a/app/server/util/auth.js +++ b/app/server/util/auth.js @@ -1,8 +1,9 @@ -let passport = require('passport') -let LocalStrategy = require('passport-local').Strategy -let crypto = require('crypto') -// let fs = require('fs') -let db = require('../db') +import passport from 'passport' +import { Strategy as LocalStrategy } from 'passport-local' +import crypto from 'crypto' +import db from '../db' + +const { user: userModel } = db.models export function route(app, serve_index){ passport.serializeUser(serializeUser) @@ -36,32 +37,38 @@ export function ensureAuthenticated(req, res, next) { } export function checkIfUserExists(req, res, next) { - db.getUserByUsername(sanitizeName(req.body.username)).then((user) => { + userModel.show(sanitizeName(req.body.username), 'username').then((user) => { + console.log('gotta user?', !!user); user ? res.json({ error: "user exists" }) : next() + }).catch(err => { + console.error('error', err) }) } -export function sanitizeName(s) { return (s || "").replace(new RegExp("[^-_a-zA-Z0-9]", 'g'), "") } +export function sanitizeName(s) { return (s || "").replace(new RegExp('[^-_a-zA-Z0-9]', 'g'), "") } export function sanitizeUser(req_user) { // sanitize user object - var user = JSON.parse(JSON.stringify(req_user)) + let user = JSON.parse(JSON.stringify(req_user)) delete user.password return user } export function createUser(req, res, next) { - if (req.body.password !== req.body.password2) { + const { username, password, password2 } = req.body + if (password !== password2) { return res.json({ error: "passwords don't match" }) } let data = { - username: sanitizeName(req.body.username), - realname: sanitize(req.body.realname), - password: makePassword(username, req.body.password), - firstseen: new Date(), + username: sanitizeName(username), + realname: sanitizeName(username), + password: makePassword(username, password), lastseen: new Date(), - // lastsession: util.now(), + level: 0, + profile: {}, } - db.createUser(data).then(() => next()) + userModel.create(data) + .then(user => next(user)) + .catch(err => res.json({ error })) } export function login(req, res) { @@ -101,11 +108,11 @@ export function validPassword(user, password) { } export function changePassword(req, res, next) { - if (! req.body.oldpassword && ! req.body.newpassword) return next() + if (!req.body.oldpassword && !req.body.newpassword) return next() if (req.body.newpassword !== req.body.newpassword2) { return res.send({ error: 'Passwords don\'t match.' }) } - if (! validPassword(res.user, req.body.oldpassword)) { + if (!validPassword(res.user, req.body.oldpassword)) { return res.send({ error: 'Password is incorrect.' }) } let username = req.user.get('username') @@ -113,19 +120,6 @@ export function changePassword(req, res, next) { res.user.set('password', newPassword) res.user.save().then(() => next()).catch(err => res.send({ error: err })) } -export function changePasswordDangerously(req, res, next) { - if (! req.body.password && ! req.body.newpassword) return next() - if (req.body.newpassword !== req.body.newpassword2) { - return res.send({ error: 'Passwords don\'t match.' }) - } - if (! validPassword(req.user, req.body.password)) { - return res.send({ error: 'Password is incorrect.' }) - } - let username = res.user.get('username') - let newPassword = makePassword(username, req.body.newpassword) - res.user.set('password', newPassword) - res.user.save().then(() => next()).catch(err => res.send({ error: err })) -} export function verifyLocalUser(username, password, done) { // handle passwords!! @@ -142,7 +136,6 @@ export function verifyLocalUser(username, password, done) { }) } - export function checkin(req, res) { res.json({ user: sanitizeUser(req.user) }) } |
