diff options
| author | nanalelfe <nargiza.nosirova@mail.utoronto.ca> | 2016-07-21 06:29:31 +0000 |
|---|---|---|
| committer | nanalelfe <nargiza.nosirova@mail.utoronto.ca> | 2016-07-21 06:29:31 +0000 |
| commit | ee8e1a13b60a6adfdc691b2a9b57289188397641 (patch) | |
| tree | 096633208d9b8b6b59b67f4034a0cbb41e1f4c5d /node_modules/passport/lib/http | |
| parent | 689df70a38ace2f88cfef6ab50f10dc546b48f00 (diff) | |
need pull
Diffstat (limited to 'node_modules/passport/lib/http')
| -rw-r--r-- | node_modules/passport/lib/http/request.js | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/node_modules/passport/lib/http/request.js b/node_modules/passport/lib/http/request.js new file mode 100644 index 0000000..b6fc99a --- /dev/null +++ b/node_modules/passport/lib/http/request.js @@ -0,0 +1,108 @@ +/** + * Module dependencies. + */ +//var http = require('http') +// , req = http.IncomingMessage.prototype; + + +var req = exports = module.exports = {}; + +/** + * Intiate a login session for `user`. + * + * Options: + * - `session` Save login state in session, defaults to _true_ + * + * Examples: + * + * req.logIn(user, { session: false }); + * + * req.logIn(user, function(err) { + * if (err) { throw err; } + * // session saved + * }); + * + * @param {User} user + * @param {Object} options + * @param {Function} done + * @api public + */ +req.login = +req.logIn = function(user, options, done) { + if (typeof options == 'function') { + done = options; + options = {}; + } + options = options || {}; + + var property = 'user'; + if (this._passport && this._passport.instance) { + property = this._passport.instance._userProperty || 'user'; + } + var session = (options.session === undefined) ? true : options.session; + + this[property] = user; + if (session) { + if (!this._passport) { throw new Error('passport.initialize() middleware not in use'); } + if (typeof done != 'function') { throw new Error('req#login requires a callback function'); } + + var self = this; + this._passport.instance.serializeUser(user, this, function(err, obj) { + if (err) { self[property] = null; return done(err); } + if (!self._passport.session) { + self._passport.session = {}; + } + self._passport.session.user = obj; + if (!self.session) { + self.session = {}; + } + self.session[self._passport.instance._key] = self._passport.session; + done(); + }); + } else { + done && done(); + } +}; + +/** + * Terminate an existing login session. + * + * @api public + */ +req.logout = +req.logOut = function() { + var property = 'user'; + if (this._passport && this._passport.instance) { + property = this._passport.instance._userProperty || 'user'; + } + + this[property] = null; + if (this._passport && this._passport.session) { + delete this._passport.session.user; + } +}; + +/** + * Test if request is authenticated. + * + * @return {Boolean} + * @api public + */ +req.isAuthenticated = function() { + var property = 'user'; + if (this._passport && this._passport.instance) { + property = this._passport.instance._userProperty || 'user'; + } + + return (this[property]) ? true : false; +}; + +/** + * Test if request is unauthenticated. + * + * @return {Boolean} + * @api public + */ +req.isUnauthenticated = function() { + return !this.isAuthenticated(); +}; |
