0.4.1 • Published 7 years ago

basic-sso v0.4.1

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

Basic SSO :unlock:

Basic authentication mechanism for Single sign-on

Install

To install basic-sso, simply use npm:

npm install basic-sso --save

Example

Server

const app = require('express')()
const Sso = require('basic-sso')

const sso = Sso('server_unique_app_name', {
	prime: 'diffie_hellman_prime',
	listen: 8001 // port for key exchange
})

const server = sso.server({
	domain: 'foo.com',
	cookie: {
		secret: 'password',
		keylist: ['foo', 'bar'],
		name: 'sso_signed',
		secure: false,
		httpOnly: true
	}
})

server.addApp('client', {
	redirect: 'http://127.0.0.1:3000/landing'
})

server.strategy('strategy', (username, password, done) => {
  const user = User.findByUsername(username)

  // Compare password

  done(null, user)
})

server.authorizeUser((user, app, done) => {
  // if user can access this app

  done(null, {
    // user info to return to client
  })
})

server.serializeUser((user, done) => {
  // What to put in the cookie
  done(null, user.id)
})

server.deserializeUser((id, done) => {
  // Retrive user from cookie
  const user = User.findById(id)
  done(null, user)
})

// Endpoint to authenticate user
app.get('/auth', server.authenticate(), (req, res, next) => {
	// render login page
})
// Endpoint to login user
app.post('/login', server.logIn('strategy'))

Client

const app = require('express')()
const Sso = require('basic-sso')

const sso = Sso('client_unique_app_name', {
	prime: 'diffie_hellman_prime',
	listen: 8002 // port for key exchange
})

const client = sso.client({
	verify: 'verify',
	server: {
		name: 'server',
		host: '127.0.0.1',
		port: 3000,
		dh_port: 8001,
		auth_path: '/auth'
	}
})

app.get('/login', (req, res) => {
	client.redirectLogIn(res)
})

app.get('/landing', client.landing(), (req, res) => {
	console.log(req.user)
})
0.4.1

7 years ago

0.4.0

7 years ago

0.3.3

7 years ago

0.3.2

7 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.0

7 years ago

0.1.0

7 years ago