An complete executable example here at: https://github.com/waychan23/koa2-oauth-server/tree/master/examples/complete-example.
This repository is forked from express-oauth-server. The reason why I choose express-oauth-server over koa-oauth-server is the latter seems to be a little out of maintenance.
Complete, compliant and well tested module for implementing an OAuth2 Server/Provider with koa2 in node.js.
This is the koa2 wrapper for oauth2-server.
$ npm install waychan23/koa2-oauth-server The module provides two middlewares - one for granting tokens and another to authorize them. koa2-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 bodyParser = require('koa-bodyparser'); var koa = require('koa'); var OAuthServer = require('koa2-oauth-server'); var app = new koa(); app.oauth = new OAuthServer({ model: {}, // See https://github.com/oauthjs/node-oauth2-server for specification }); app.use(bodyParser()); app.use(app.oauth.authorize()); app.use(async (ctx, next) => { ctx.body = 'Secret area'; await next(); }); app.listen(3000);var options = { useErrorHandler: false, continueMiddleware: false, } -
useErrorHandler(type: boolean default: false)If false, an error response will be rendered by this component. Set this value to true to allow your own error handler to handle the error.
Note: the
errorobject will be passed along the middleware chain asctx.state.oauth.error. -
continueMiddleware(type: boolean default: false)The
authorize()andtoken()middlewares will both render their result to the response and end the pipeline. next() will only be called if this is set to true.Note: You cannot modify the response since the headers have already been sent.
authenticate()does not modify the response and will always call next()