UNPKG

gplus-web-auth

Version:

Google Plus Login module for Node.js

78 lines (57 loc) 2.48 kB
gplus-web-auth ============== Google+ login and authentication with client-side sessions for Node.js ## Installation Available via [npm](http://www.npmjs.org), to install it simply run the following line in your project: npm install gplus-web-auth ## Configuration The module takes three parameters, 1. Google+ credentials * A client ID. Create one on Google+ Developer Console and also configure whitelisted domains. * Configure the scope of permissions to ask for. * (optional) Configure a custom oauth2callback path, default is `/oauth2callback`. 2. Session details * Configure the name of the cookie to use. * A random string to encrypt the cookies. * Duration of the token expiry * In case token is about to expire, extend the session for. 3. Authorization method * A function that gets the user object from Google+ as the first parameter and a callback as second parameter. Simply return a truthy value on the callback method to authorise the user. ```js var auth = require('gplus-web-auth')({ google: { client_id: "applicationid123.apps.googleusercontent.com", scope: ['profile', 'email'], callbackPath: "/custom/oauth2callback" }, session: { cookieName: "gplusauth", // cookie name dictates the key name added to the request object secret: "secret", // should be a large unguessable string duration: 24 * 60 * 60 * 1000, // how long the session will stay valid in ms activeDuration: 1000 * 60 * 5 // if expiresIn < activeDuration, the session will be extended by activeDuration milliseconds }, authorize: function(req, user, done){ var authorized = (user.email.split('@')[1] === "application.com"); done(authorized); } }); ``` ## Usage Now simply use the `auth` object as a middleware on your app: ```js app.use(auth); ``` and use `auth.verify` middleware on routes that you wish should require authentication. ```js app.get('/admin', auth.verify, function(req, res) { res.render('index'); }); ``` Calling `app.use(auth)` sets up this route on your app: `/oauth2callback` to use for authentication callbacks. ## Caveats Because this module uses client-side sessions - you do not need a session store on the server - hence easy to get up and running. But also you should not use Express's session middleware as it might conflict. ## Author Sunil Pai, threepointone@gmail.com Param Aggarwal, paramaggarwal@gmail.com ## License gplus-web-auth is available under the MIT license.