Coder Social home page Coder Social logo

opensesame-profile's Introduction

OpenSesame Profile

Build Status

A solution for applications that use PJSON to gain profile capabilities and user management

It provides the following routes for authentication purposes:

API

  • GET /profile/user - Gets all users.
  • PUT /profile/user - Updates all users at the same time. The body of the request will be merged into the database.
  • GET /profile/user/:userId - Gets a user by their id.
  • POST /profile/user/:userId - Creates a new user with userId. The body of the request will be the json that is stored for that user.
  • PUT /profile/user/:userId - Updates a new user with userId. The body of the request will be the json that is stored for that user.
  • DELETE /profile/user/:userId - Deletes a new user with userId.
  • PUT /profile/user/:userId/role/:roleId - Adds a role named roleId to a user with userId
  • DELETE /profile/user/:userId/role/:roleId - Deletes a role named roleId from a user with userId

Configuration options

Opensesame Profile options are passed directly to OpenSesame so all OpenSesame options can be used here as well.

Required

  • secret - A string which is used by the JWT library to crpytographically sign and verify JWTs.

checkUser, registerUser, and refreshUser are implemented by OpenSesame Profile so they are not required here.

Optional

Opensesame Profile has the same optional options as Opensesame with one addition:

  • middleware - A function or an array of functions that is express middleware that will be run after opensesame middleware but before opensesame-profile middleware. This can be used to provide authorization to the /profile routes by using the req.user object that opensesame provides for example.

Example

Check the example folder for a running example of how to use opensesame.

var opensesameProfile = require('opensesame-profile');
//you can give opensesame-profile an express app object
opensesameProfile({
    secret: 'testSecret',
    middleware: function (req, res, next) {
        //also can check which route this is accessing
        if(req.user.roles.indexOf('admin') !== -1) {
            next();
        } else {
            res.status(401).end();
        }
    },
    httpsOnly: false
}, app);
//or have it generate one for you
var app = opensesameProfile({
    secret: 'testSecret',
    middleware: function (req, res, next) {
        //also can check which route this is accessing
        if(req.user.roles.indexOf('admin') !== -1) {
            next();
        } else {
            res.status(401).end();
        }
    },
    httpsOnly: false
});

Note: OpenSesame Profile uses OpenSesame and it uses the bodyParser.json() middleware.

opensesame-profile's People

Contributors

pfatyga avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.