{"_id":"connect-ensure-login","_rev":"21-5c801bd2aa228e479a1a14053252ac0a","name":"connect-ensure-login","description":"Login session ensuring middleware for Connect.","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"connect-ensure-login","version":"0.1.0","description":"Login session ensuring middleware for Connect.","keywords":["connect","express","auth","authn","authentication","login","session","passport"],"repository":{"type":"git","url":"git://github.com/jaredhanson/connect-ensure-login.git"},"bugs":{"url":"http://github.com/jaredhanson/connect-ensure-login/issues"},"author":{"name":"Jared Hanson","email":"jaredhanson@gmail.com","url":"http://www.jaredhanson.net/"},"licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/MIT"}],"main":"./lib","dependencies":{},"devDependencies":{"vows":"0.6.x"},"scripts":{"test":"NODE_PATH=lib node_modules/.bin/vows test/*-test.js"},"engines":{"node":">= 0.4.0"},"_npmUser":{"name":"jaredhanson","email":"jaredhanson@gmail.com"},"_id":"connect-ensure-login@0.1.0","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"dist":{"shasum":"8fb2b4ad43f16ee53cb389e1227289f12154462e","tarball":"https://registry.npmjs.org/connect-ensure-login/-/connect-ensure-login-0.1.0.tgz","integrity":"sha512-4CD8+6z6FMW16Xylr7goR6Fj6k6ox2bmSS2S3seCHLGQruQoJgbOKm3RREwlxyTOpTMd7ytgzZmWGWHjcoD4Ow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0B1a56URMig8YpKXn8wfT8RN4TYlo4gW21fZV8U3DgwIgV4FWX3prgnHnz0Ok+jw17Ppxd0H1plwcg+iB+p0m8Bc="}]},"readme":"","maintainers":[{"name":"jaredhanson","email":"jaredhanson@gmail.com"}]},"0.1.1":{"name":"connect-ensure-login","version":"0.1.1","description":"Login session ensuring middleware for Connect.","keywords":["connect","express","auth","authn","authentication","login","session","passport"],"repository":{"type":"git","url":"git://github.com/jaredhanson/connect-ensure-login.git"},"bugs":{"url":"http://github.com/jaredhanson/connect-ensure-login/issues"},"author":{"name":"Jared Hanson","email":"jaredhanson@gmail.com","url":"http://www.jaredhanson.net/"},"licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/MIT"}],"main":"./lib","dependencies":{},"devDependencies":{"vows":"0.6.x"},"scripts":{"test":"NODE_PATH=lib node_modules/.bin/vows test/*-test.js"},"engines":{"node":">= 0.4.0"},"readme":"# connect-ensure-login\n\nThis middleware ensures that a user is logged in.  If a request is received that\nis unauthenticated, the request will be redirected to a login page.  The URL\nwill be saved in the session, so the user can be conveniently returned to the\npage that was originally requested.\n\n## Install\n\n    $ npm install connect-ensure-login\n\n## Usage\n\n#### Ensure Authentication\n\nIn this example, an application has a settings page where preferences can be\nconfigured.  A user must be logged in before accessing this page.\n\n    app.get('/settings',\n      ensureLoggedIn('/login'),\n      function(req, res) {\n        res.render('settings', { user: req.user });\n      });\n      \nIf a user is not logged in when attempting to access this page, the request will\nbe redirected to `/login` and the original request URL (`/settings`) will be\nsaved to the session at `req.session.returnTo`.\n\n#### Log In and Return To\n\nThis middleware integrates seamlessly with [Passport](http://passportjs.org/).\nSimply mount Passport's `authenticate()` middleware at the login route.\n\n    app.get('/login', function(req, res) {\n      res.render('login');\n    });\n\n    app.post('/login', passport.authenticate('local', { successReturnToOrRedirect: '/', failureRedirect: '/login' }));\n    \nUpon log in, Passport will notice the `returnTo` URL saved in the session and\nredirect the user back to `/settings`.\n\n#### Step By Step\n\nIf the user is not logged in, the sequence of requests and responses that take\nplace during this process can be confusing.  Here is a step-by-step overview of\nwhat happens:\n\n1. User navigates to `GET /settings`\n    - Middleware sets `session.returnTo` to `/settings`\n    - Middleware redirects to `/login`\n2. User's browser follows redirect to `GET /login`\n    - Application renders a login form (or, alternatively, offers SSO)\n3. User submits credentials to `POST /login`\n    - Application verifies credentials\n    - Passport reads `session.returnTo` and redirects to `/settings`\n4. User's browser follows redirect to `GET /settings`\n    - Now authenticated, application renders settings page\n\n## Tests\n\n    $ npm install --dev\n    $ make test\n\n[![Build Status](https://secure.travis-ci.org/jaredhanson/connect-ensure-login.png)](http://travis-ci.org/jaredhanson/connect-ensure-login)\n\n## Credits\n\n  - [Jared Hanson](http://github.com/jaredhanson)\n\n## License\n\n[The MIT License](http://opensource.org/licenses/MIT)\n\nCopyright (c) 2012-2013 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)>\n","_id":"connect-ensure-login@0.1.1","dist":{"shasum":"174dcc51243b9eac23f8d98215aeb6694e2e8a12","tarball":"https://registry.npmjs.org/connect-ensure-login/-/connect-ensure-login-0.1.1.tgz","integrity":"sha512-u0LGY/YXgkqdD4uVz8Gkri0adby5SBPYIFQvIa4FjBIaZUN0yuZPVHsjAA2bUiprGyjh8NlqxPUcIzzfTiXhQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDLQs1lX9QXtp0x2Nsg+mUGS+sZMpZVVp3UQdVjwi0kyAiEAsJveD5MWubWk7EQPGCRvtyzvyJTy3orf/kQypta5tuE="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"jaredhanson","email":"jaredhanson@gmail.com"},"maintainers":[{"name":"jaredhanson","email":"jaredhanson@gmail.com"}]}},"readme":"","maintainers":[{"name":"jaredhanson","email":"jaredhanson@gmail.com"}],"time":{"modified":"2022-06-13T21:26:39.716Z","created":"2012-07-01T03:00:06.019Z","0.1.0":"2012-07-01T03:00:07.524Z","0.1.1":"2013-05-11T19:08:48.902Z"},"author":{"name":"Jared Hanson","email":"jaredhanson@gmail.com","url":"http://www.jaredhanson.net/"},"repository":{"type":"git","url":"git://github.com/jaredhanson/connect-ensure-login.git"},"users":{"panlw":true,"fibo":true,"snowdream":true,"meshal":true,"kunalgaurav18":true,"hugovila":true,"mrbgit":true,"kikna":true,"karzanosman984":true,"nicknaso":true,"themadjoker":true,"wallenberg12":true}}