csballz/koala-puree

View on GitHub
docs/jsdocs/passport-req.js.html

Summary

Maintainability
Test Coverage
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JSDoc: Source: passport-req.js</title>

    <script src="scripts/prettify/prettify.js"> </script>
    <script src="scripts/prettify/lang-css.js"> </script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>

<body>

<div id="main">

    <h1 class="page-title">Source: passport-req.js</h1>

    



    
    <section>
        <article>
            <pre class="prettyprint source linenums"><code>
function decorate(req){

    /**
     * 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 &amp;&amp; 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); }
          self._passport.session.user = obj;
          done();
        });
      } else {
        done &amp;&amp; done();
      }
    };

    /**
     * Terminate an existing login session.
     *
     * @api public
     */
    req.logout =
    req.logOut = function() {
      var property = 'user';
      if (this._passport &amp;&amp; this._passport.instance) {
        property = this._passport.instance._userProperty || 'user';
      }

      this[property] = null;
      if (this._passport &amp;&amp; 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 &amp;&amp; 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();
    };
}
exports = module.exports = decorate;
</code></pre>
        </article>
    </section>




</div>

<nav>
    <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-lib_models.html">lib/models</a></li></ul><h3>Classes</h3><ul><li><a href="module-lib_models-ModelBuilder.html">ModelBuilder</a></li><li><a href="module-lib_models-OrientoseModelPlugin.html">OrientoseModelPlugin</a></li></ul>
</nav>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.0-dev</a> on Wed Oct 14 2015 15:54:44 GMT+0800 (CST)
</footer>

<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>