|
@@ -7,50 +7,61 @@ var r = require('../db');
|
|
|
|
|
|
var bcrypt = require('bcryptjs');
|
|
var bcrypt = require('bcryptjs');
|
|
|
|
|
|
-
|
|
+
|
|
|
|
+
|
|
authRouter.use('/login/callback/github', auth.authenticate('github'), function (req, res) {
|
|
authRouter.use('/login/callback/github', auth.authenticate('github'), function (req, res) {
|
|
res.redirect('/');
|
|
res.redirect('/');
|
|
});
|
|
});
|
|
-authRouter.get('/login/github', auth.authenticate('github', { scope: [ 'user:email' ] }));
|
|
+
|
|
|
|
+authRouter.get('/login/github', auth.authenticate('github'));
|
|
|
|
|
|
-
|
|
+
|
|
|
|
+
|
|
authRouter.get('/login', auth.authenticate('local', {successRedirect: '/auth/user', failureRedirect: '/login'}), function(req, res) {
|
|
authRouter.get('/login', auth.authenticate('local', {successRedirect: '/auth/user', failureRedirect: '/login'}), function(req, res) {
|
|
|
|
|
|
|
|
|
|
res.redirect("/auth/user");
|
|
res.redirect("/auth/user");
|
|
});
|
|
});
|
|
|
|
|
|
-
|
|
+
|
|
authRouter.get('/register', function(req, res) {
|
|
authRouter.get('/register', function(req, res) {
|
|
|
|
+
|
|
req.checkQuery('email', 'Invalid email').isEmail();
|
|
req.checkQuery('email', 'Invalid email').isEmail();
|
|
req.checkQuery('username', 'Invalid getparam').notEmpty();
|
|
req.checkQuery('username', 'Invalid getparam').notEmpty();
|
|
req.checkQuery('password', 'Invalid getparam').notEmpty();
|
|
req.checkQuery('password', 'Invalid getparam').notEmpty();
|
|
|
|
+
|
|
var query = req.query;
|
|
var query = req.query;
|
|
|
|
|
|
|
|
+
|
|
var errors = req.validationErrors();
|
|
var errors = req.validationErrors();
|
|
if (errors) {
|
|
if (errors) {
|
|
res.send('There have been validation errors: ', 400);
|
|
res.send('There have been validation errors: ', 400);
|
|
return;
|
|
return;
|
|
} else {
|
|
} else {
|
|
|
|
|
|
|
|
+
|
|
r.table("users").getAll(query.username.toLowerCase(), {index: "usernameL"}).isEmpty().run(r.conn, function(err, result) {
|
|
r.table("users").getAll(query.username.toLowerCase(), {index: "usernameL"}).isEmpty().run(r.conn, function(err, result) {
|
|
if (err) throw err;
|
|
if (err) throw err;
|
|
if (result) {
|
|
if (result) {
|
|
|
|
+
|
|
r.table("users").getAll(query.email.toLowerCase(), {index: "email"}).isEmpty().run(r.conn, function(err, result) {
|
|
r.table("users").getAll(query.email.toLowerCase(), {index: "email"}).isEmpty().run(r.conn, function(err, result) {
|
|
if (err) throw err;
|
|
if (err) throw err;
|
|
if (result) {
|
|
if (result) {
|
|
|
|
|
|
var hash;
|
|
var hash;
|
|
|
|
+
|
|
bcrypt.genSalt(10, function (err, salt) {
|
|
bcrypt.genSalt(10, function (err, salt) {
|
|
if (err) {
|
|
if (err) {
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
+
|
|
bcrypt.hash(query.password, salt, function (err, hash) {
|
|
bcrypt.hash(query.password, salt, function (err, hash) {
|
|
if (err) {
|
|
if (err) {
|
|
|
|
|
|
} else {
|
|
} else {
|
|
var email = query.email.toLowerCase();
|
|
var email = query.email.toLowerCase();
|
|
var usernameL = query.username.toLowerCase();
|
|
var usernameL = query.username.toLowerCase();
|
|
|
|
+
|
|
r.table('users')
|
|
r.table('users')
|
|
.insert({
|
|
.insert({
|
|
username: query.username,
|
|
username: query.username,
|
|
@@ -63,10 +74,12 @@ authRouter.get('/register', function(req, res) {
|
|
.then(function (response) {
|
|
.then(function (response) {
|
|
|
|
|
|
return r.table('users')
|
|
return r.table('users')
|
|
|
|
+
|
|
.get(response.generated_keys[0])
|
|
.get(response.generated_keys[0])
|
|
.run(r.conn);
|
|
.run(r.conn);
|
|
})
|
|
})
|
|
.then(function (newUser) {
|
|
.then(function (newUser) {
|
|
|
|
+
|
|
|
|
|
|
});
|
|
});
|
|
}
|
|
}
|
|
@@ -84,8 +97,9 @@ authRouter.get('/register', function(req, res) {
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
-
|
|
+
|
|
authRouter.use('/user', authControllers.getUser);
|
|
authRouter.use('/user', authControllers.getUser);
|
|
|
|
+
|
|
authRouter.use('/logout', authControllers.logout);
|
|
authRouter.use('/logout', authControllers.logout);
|
|
|
|
|
|
module.exports = authRouter;
|
|
module.exports = authRouter;
|