Complete passport setup
This commit is contained in:
52
api/controllers/SessionController.js
Normal file
52
api/controllers/SessionController.js
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/**
|
||||||
|
* SessionController
|
||||||
|
*
|
||||||
|
* @module :: Controller
|
||||||
|
* @description :: A set of functions called `actions`.
|
||||||
|
*
|
||||||
|
* Actions contain code telling Sails how to respond to a certain type of request.
|
||||||
|
* (i.e. do stuff, then send some JSON, show an HTML page, or redirect to another URL)
|
||||||
|
*
|
||||||
|
* You can configure the blueprint URLs which trigger these actions (`config/controllers.js`)
|
||||||
|
* and/or override them with custom routes (`config/routes.js`)
|
||||||
|
*
|
||||||
|
* NOTE: The code you write here supports both HTTP and Socket.io automatically.
|
||||||
|
*
|
||||||
|
* @docs :: http://sailsjs.org/#!documentation/controllers
|
||||||
|
*/
|
||||||
|
var passport = require('passport');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
create: function(req,res) {
|
||||||
|
passport.authenticate('local', function(err, user, info) {
|
||||||
|
if(err || !user) {
|
||||||
|
res.redirect('/login');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
req.logIn(user, function(err) {
|
||||||
|
if (err) {
|
||||||
|
res.redirect('/login');
|
||||||
|
}
|
||||||
|
return res.redirect('/');
|
||||||
|
});
|
||||||
|
})(req, res);
|
||||||
|
},
|
||||||
|
|
||||||
|
destroy: function(req, res) {
|
||||||
|
req.logout();
|
||||||
|
res.send('logout successful');
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overrides for the settings in `config/controllers.js`
|
||||||
|
* (specific to SessionController)
|
||||||
|
*/
|
||||||
|
_config: {
|
||||||
|
blueprints: {
|
||||||
|
shortcuts: false,
|
||||||
|
rest: false
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
@@ -11,7 +11,7 @@ module.exports = function(req, res, next) {
|
|||||||
|
|
||||||
// User is allowed, proceed to the next policy,
|
// User is allowed, proceed to the next policy,
|
||||||
// or if this is the last policy, the controller
|
// or if this is the last policy, the controller
|
||||||
if (req.session.authenticated) {
|
if (req.isAuthenticated()) {
|
||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,11 @@ module.exports.policies = {
|
|||||||
'find': true,
|
'find': true,
|
||||||
'create': true,
|
'create': true,
|
||||||
'update': true
|
'update': true
|
||||||
|
},
|
||||||
|
|
||||||
|
SessionController: {
|
||||||
|
'create': true,
|
||||||
|
'destroy': 'isAuthenticated'
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -35,10 +35,13 @@ module.exports.routes = {
|
|||||||
'/': {
|
'/': {
|
||||||
view: 'home/index'
|
view: 'home/index'
|
||||||
},
|
},
|
||||||
'/about': {
|
|
||||||
controller: 'staticPagesController',
|
// static pages
|
||||||
action: 'about'
|
'get /about': 'StaticPagesController.about',
|
||||||
},
|
|
||||||
|
// session
|
||||||
|
'post /login': 'SessionController.create',
|
||||||
|
'post /logout': 'SessionController.destroy',
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// But what if you want your home page to display
|
// But what if you want your home page to display
|
||||||
|
|||||||
Reference in New Issue
Block a user