Need help with koa-oauth-server?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

oauthjs
205 Stars 80 Forks 53 Commits 23 Opened issues

Description

Complete, compliant and well tested module for implementing an OAuth2 Server/Provider with koa in node.js

Services available

!
?

Need anything else?

Contributors list

# 26,461
oauth2
Kuberne...
Go
openid-...
6 commits
# 62,105
datadog
Applica...
C
CSS
2 commits
# 43,670
rebase
PHP
Angular
mariadb
1 commit

Koa OAuth Server Build Status

Complete, compliant and well tested module for implementing an OAuth2 Server/Provider with koa in node.js.

This is the koa wrapper for oauth2-server.

Installation

$ npm install koa-oauth-server

Quick Start

The module provides two middlewares - one for granting tokens and another to authorise them.

koa-oauth-server
and, consequently
oauth2-server
, expect the request body to be parsed already. The following example uses
koa-bodyparser
but you may opt for an alternative library.
var koa = require('koa');
var bodyparser = require('koa-bodyparser');
var oauthserver = require('koa-oauth-server');

var app = koa();

app.oauth = oauthserver({ model: {}, // See https://github.com/thomseddon/node-oauth2-server for specification grants: ['password'], debug: true });

app.use(bodyparser()); app.use(app.oauth.authorise());

app.use(function *(next) { this.body = 'Secret area'; yield next; });

app.listen(3000);

Using
koa-router
with
koa-mount

If you wish to integrate with

koa-router
using
koa-mount
, you may do so by combining them to mount a specific prefix for oauth operations:
var Router = require('koa-router');
var bodyparser = require('koa-bodyparser');
var koa = require('koa');
var model = require('koa-oauth-server/node_modules/oauth2-server/examples/memory/model');
var mount = require('koa-mount');
var oauthserver = require('koa-oauth-server');

// Create a new koa app. var app = koa();

// Create a router for oauth. var router = new Router();

// Enable body parsing. app.use(bodyparser());

// See https://github.com/thomseddon/node-oauth2-server for specification. app.oauth = oauthserver({ model: model, grants: ['password'], debug: true });

// Mount oauth2 route prefix. app.use(mount('/oauth2', router.middleware()));

// Register /token POST path on oauth router (i.e. /oauth2/token). router.post('/token', app.oauth.grant());

// Start koa server. app.listen(3000);

Then attempt to be granted a new oauth token:

curl -XPOST -d 'username=thomseddon&password=nightworld&grant_type=password&client_id=thom&client_secret=nightworld' http://localhost:3000/oauth2/token

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.