1.0.29 • Published 9 years ago

authchio v1.0.29

Weekly downloads
-
License
GPL-3.0
Repository
-
Last release
9 years ago

Authchio

Authentication and authorization middleware for Node.js application

Installation

First install Node.js and MongoDB. Then:

$ npm install authchio

Authentication usage

Connect to MongoDB

const authchio = require("authchio");
authchio.connect("mongodb://localhost/test", err =>
{
  // Add strategies
});

Add strategy

authchio.addCredentialsCookiesStrategy("credentials", { expiresIn: 3600 * 24 });
authchio.addFacebookCookiesStrategy("facebook", { appId: xxx, appSecret: xxx, expiresIn: 3600 * 24, secure: true });

Register user

authchio.register("credentials", request, response, { username: "foo", password: "bar" }, (err, isSuccessful) =>
{
  // Create app specific profile
});
authchio.register("facebook", request, response, { userToken: xxx }, (err, isSuccessful) =>
{
  // Create app specific profile
});

Log user in

authchio.token("credentials", request, response, { username: "foo", password: "bar" }, (err, isSuccessful) =>
{
    if(err) // database/server error
    if(!isSuccessful) // no user / wrong password
});
authchio.token("facebook", request, response, { userToken: xxx }, (err, isSuccessful) =>
{
  // Update latest login timestamp
});

Authenticate subsequent request

authchio.authenticate(request, response, {}, (err, user) =>
{
  if(!user) return; // login failed
});

Log user out

authchio.revoke("credentials", request, response, null, (err, isSuccessful) =>
{
});

Authorization usage

Register role

You have to register roles everytime authchio starts

authchio.registerRole("admin");
authchio.registerRole("user");

Grant role

Grant role to user when they sign up

authchio.grantRole("admin", "username", (err) =>
{
});

Add rule

You have to add rules everytime authchio starts

authchio.addRule("API", "getUsers");
authchio.addRule("WEB", "users");

Authorize

Authorize resource access, throw if callback is not passed to the function

authchio.authorize(request, response, "API", "getUsers", err =>
{
    console.log(err.message); // Unauthorized access for "getUsers" in "API", required roles: [admin], granted roles: [user] 
});

try
{
    authchio.authorize(request, response, "API", "getUsers");
}
catch(err)
{
    console.log(err.message); // Unauthorized access for "getUsers" in "API", required roles: [admin], granted roles: [user] 
}
1.0.29

9 years ago

1.0.28

10 years ago

1.0.27

10 years ago

1.0.26

10 years ago

1.0.25

10 years ago

1.0.24

10 years ago

1.0.23

10 years ago

1.0.22

10 years ago

1.0.21

10 years ago

1.0.20

10 years ago

1.0.19

10 years ago

1.0.18

10 years ago

1.0.17

10 years ago

1.0.16

10 years ago

1.0.15

10 years ago

1.0.14

10 years ago

1.0.13

10 years ago

1.0.12

10 years ago

1.0.11

10 years ago

1.0.10

10 years ago

1.0.9

10 years ago

1.0.8

10 years ago

1.0.6

10 years ago

1.0.5

10 years ago

1.0.4

10 years ago

1.0.3

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago