diff --git a/auth/facebook.js b/auth/facebook.js index 89b3ef3..6263984 100644 --- a/auth/facebook.js +++ b/auth/facebook.js @@ -1,27 +1,73 @@ var passport = require('passport'); var FacebookStrategy = require('passport-facebook').Strategy; var User = require('../models/user'); -// module.exports = function(passport){ -// -// }; +var jwt = require('jsonwebtoken'); +var config = require('../config/database'); + var mongoose = require('mongoose'); + + +passport.serializeUser((user, done) => { + done(null, user.id); +}); + +passport.deserializeUser((id, done) => { + // console.log(`id: ${id}`); + User.findById(id) + .then(user => { + done(null, user); + }) + .catch(error => { + console.log(`Error: ${error}`); + }); +}); + passport.use(new FacebookStrategy({ clientID: "191092458179642", clientSecret: "964e490d7e49a13ee7a77c9b65419fb3", - callbackURL: "https://localhost:3000/api/facebook/callback" + callbackURL: "https://localhost:3000/api/facebook/callback", + proxy: true }, function(accessToken, refreshToken, profile, done) { console.log('facebook findOneOrCreate'+profile.displayName); - User.findOneOrCreate(profile.displayName.toString(), function(err, user, req, res) { - if (err) { - console.log('findOneOrCreate err'); - console.log(err); - return done(err); + + User.findOne({ + username: profile.displayName + }, function(err, user) { + if(user){ + console.log('findOneOrCreate ok'+user.username); + var token = jwt.sign(user.toJSON(), config.secret); + // return the information including token as JSON + //res.json({success: true, token: }); + return done(null, user); + }else{ + + var newUser = new User({ + username: profile.displayName, + password: profile.password, + social: true + }); + // save the user + newUser.save(function(err) { + if (err) { + console.log('Username already exists.'); + } + return done(null, user); + }); } - console.log('findOneOrCreate ok'+user.displayName); - //res.json({token: accessToken, user: user.username}); - done(null, user); + }); + + // User.findOneOrCreate(profile.displayName.toString(), function(err, user, req, res) { + // if (err) { + // console.log('findOneOrCreate err'); + // console.log(err); + // return done(err); + // } + // console.log('findOneOrCreate ok'+user.displayName); + // //res.json({token: accessToken, user: user.username}); + // done(null, user); + // }); // Page.findOneOrCreate(pageId, (err, page)=>{ // if(err){ // //if theres an error, do something diff --git a/bin/www b/bin/www index 9d5403d..dc89cc7 100644 --- a/bin/www +++ b/bin/www @@ -37,7 +37,7 @@ var credentials = { var server = https.createServer(credentials, app); //var server = http.createServer(app); -W + // server.setSecure(credentials); /** diff --git a/models/User.js b/models/User.js index dc1c094..ad19eaf 100644 --- a/models/User.js +++ b/models/User.js @@ -15,6 +15,10 @@ var UserSchema = new Schema({ password: { type: String, required: false + }, + social: { + type: Boolean, + required: false } }); diff --git a/routes/api.js b/routes/api.js index 83a76af..2d799e7 100644 --- a/routes/api.js +++ b/routes/api.js @@ -38,15 +38,7 @@ getToken = function (headers) { } }; -/* config multer dossier cible et nom du file : enregistrement du fichier dans le dossier public*/ -const storage = multer.diskStorage({ - destination: function (req, file, cb) { - cb(null, './public/') - }, - filename: function (req, file, cb) { - cb(null, file.originalname) - } -}); + router.use(function(req, res, next) { res.setHeader('Access-Control-Allow-Origin', '*'); @@ -120,12 +112,10 @@ router.post('/deleteFileMongo', function(req, res, next) { console.log(JSON.stringify(req.body)); FileMongo.remove({_id : req.body._id, name: req.body.name, owner: req.body.owner}, function (err, post) { if (err){ - console.log('err deleteF ileMongo : ' + err); return next(err); } //Delete file multer dans Public - //console.log('this.getStringExtention(req.body) : ' + getStringExtention(req.body)); fs.unlink('./public/' + req.body._id + getStringExtention(req.body)); res.json(post); @@ -251,7 +241,14 @@ router.post('/getFileList', function(req, res) { }); }); +router.post('/getUserById', function(req, res) { + User.findOne({ + _id: req.body.id + }, function (err, user) { + res.json(user); + }); +}); /* Login */ router.post('/signin', function(req, res) { User.findOne({ @@ -278,6 +275,15 @@ router.post('/signin', function(req, res) { }); }); +/* config multer dossier cible et nom du file : enregistrement du fichier dans le dossier public*/ +const storage = multer.diskStorage({ + destination: function (req, file, cb) { + cb(null, './public/') + }, + filename: function (req, file, cb) { + cb(null, file.originalname) + } +}); /* Multer upload */ router.post('/upload' , multer({storage: storage, limits: {fileSize: 30000000000}}).array("public[]", 12) ,function(req,res,next){ @@ -285,7 +291,7 @@ router.post('/upload' , multer({storage: storage, limits: {fileSize: 30000000000 }); /* Get utilisateur courant */ -router.get('/getCurrentUser', passport.authenticate('jwt', { session: false}), function(req, res) { +router.get('/getCurrentUser', passport.authenticate('jwt'), function(req, res) { var token = getToken(req.headers); if (token) { @@ -309,21 +315,23 @@ function ensureAuthenticated(req, res, next) { res.redirect('/api/login'); } /* FACEBOOK ROUTER */ -router.get('/facebook', passportFacebook.authenticate('facebook', { session: false}), +router.get('/facebook', passportFacebook.authenticate('facebook'), function(req, res) { - console.log('fffacebook' + JSON.stringify(tess)); + console.log('facebook user : '+ req.user ); // Successful authentication, redirect home. res.json({user: req.user}); - }); +}); -router.get('/facebook/callback', - passportFacebook.authenticate('facebook', { failureRedirect: '/' , session: false}), - function(req, res, user,accessToken, refreshToken, profile, done) { - var tess = {user:user,accessToken:accessToken, refreshToken:refreshToken, profile:profile, done:done}; - console.log('fffacebook' + JSON.stringify(tess)); +router.get('/facebook/callback', passportFacebook.authenticate('facebook'), + function(req, res) { + console.log('facebook user : '+ req.user ); + JSON.stringify(req.user); + var myUser = req.user.toString(); + //res.json({user: myUser}); + res.redirect('/main/'+req.user._id); // Successful authentication, redirect home. - res.redirect(['/main/1']); - }); + +}); /* GOOGLE ROUTER */ diff --git a/src/app/book/book.component.html b/src/app/book/book.component.html index 0b21cd2..d400cdd 100644 --- a/src/app/book/book.component.html +++ b/src/app/book/book.component.html @@ -4,13 +4,13 @@
Current Folder : {{mainFolder.name}}
+Current Folder : {{mainFolder?.name}}
Used space : {{sizeFile.toString() === '0' ? '0' : (sizeFile/ ( 1024 * 1024 ) | number : '1.2-2')}} / 30 Mo
Path : {{mainFolder.path}}
+Path : {{mainFolder?.path}}