1.0.29 • Published 8 years ago

authchio v1.0.29

Weekly downloads
-
License
GPL-3.0
Repository
-
Last release
8 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

8 years ago

1.0.28

8 years ago

1.0.27

8 years ago

1.0.26

8 years ago

1.0.25

8 years ago

1.0.24

8 years ago

1.0.23

8 years ago

1.0.22

8 years ago

1.0.21

8 years ago

1.0.20

8 years ago

1.0.19

8 years ago

1.0.18

8 years ago

1.0.17

8 years ago

1.0.16

8 years ago

1.0.15

8 years ago

1.0.14

8 years ago

1.0.13

8 years ago

1.0.12

8 years ago

1.0.11

8 years ago

1.0.10

8 years ago

1.0.9

8 years ago

1.0.8

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago