1.2.1 • Published 9 years ago

diet-auth v1.2.1

Weekly downloads
3
License
MIT
Repository
github
Last release
9 years ago

diet-auth

Dead-simple authentication for diet.js.

Install

npm install diet-auth

Supported Services

ServiceProtocolScope List
facebookOAuth 2.0https://developers.facebook.com/docs/facebook-login/permissions/v2.1
googleOAuth 2.0https://developers.google.com/+/api/oauth

More services are coming soon.

Example Facebook Authentication

// index.js
var server = require('diet')
var app = server()
app.listen('http://localhost:8000/')
var auth  = require('diet-auth')(app)

// Setup Auth Service
var facebook = auth('facebook', {
	id		: 'yourId',             // facebook app id
	secret	: 'yourSecret',         // facebook app secret
	scope	: 'email'               // specify facebook scopes
})

// Listen on GET /auth/facebook/redirect
app.get(facebook.redirect, function($){
    $($.passed){
        $.end('Hello' + $.data.user.first_name + '!')
    } else {
        $.end('Something went wrong: ' + $.error)
    }
})
  • Visiting http://localhost:8000/auth/facebook will bring up the facebook login page.
  • After the user agreed or declined access to the application it will be redirected to your Redirect URL that is held in facebook.redirect
  • if $.passed is true then you'll have access to the $.data.user object that contains every profile information that you requested with the scope.
  • If $.passed is false then you can see what's wrong in the $.error method.

API

diet-auth has a generalised api for all services. The only differences between services is the scope names and the $.data.user object.

// Setup Auth Service 
var yourService = auth.use('yourService', {
	id		: 'yourServiceId',             // service app id
	secret	: 'yourServiceSecret',         // service app secret
	scope	: 'email'                      // specify facebook scopes
})

// Listen on GET /auth/yourService/redirect
app.get(yourService.redirect, function($){
    $($.passed){
        $.end('Hello' + $.data.user.first_name + '!')
    } else {
        $.end('Something went wrong: ' + $.error)
    }
})

Upcoming Features:

  • Better API documentation
  • Twitter authorization
  • Linkedin authorization
  • Github authorization
  • Windows Live authorization
  • Yahoo authorization
  • Trello authorization

    1: http://dietjs.com/