express-oauth-server-zzh1234567
v2.0.0
Published
OAuth provider for express
Downloads
14
Readme
Express OAuth Server
Complete, compliant and well tested module for implementing an OAuth2 Server/Provider with express in node.js.
This is the express wrapper for oauth2-server.
我需要用 https://github.com/oauthjs/express-oauth-server.但是发现有bug。所以,我修改了其中有关mongodb的bug,提交到自己github上。但文档和代码的共享都归功于原作者。
Quick Start
The module provides two middlewares - one for granting tokens and another to authorize them. express-oauth-server
and, consequently oauth2-server
, expect the request body to be parsed already.
##-------------------------------- Usage 1
The following example uses body-parser
but you may opt for an alternative library.
var bodyParser = require('body-parser');
var express = require('express');
var OAuthServer = require('express-oauth-server');
var app = express();
app.oauth = new OAuthServer({
model: {}, // See https://github.com/oauthjs/node-oauth2-server for specification
});
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(app.oauth.authorize());
app.use(function(req, res) {
res.send('Secret area');
});
app.listen(3000);
##-------------------------------- Usage 2
export default app => {
// // 如果没有oauth client,那么创建一个。 http://blog.csdn.net/u011581005/article/details/23650917 oauthModel.getClientCallback('KzEZED7aC0vird8jWyHM38mXjNTYA', 'W9JZoJe00qPvJsiyCGT3CCtC6ZUtdpKpzMbNlUGP', function (err, client) { if (!err && (client == null)) { oauthModel.createClient('KzEZED7aC0vird8jWyHM38mXjNTYA', 'W9JZoJe00qPvJsiyCGT3CCtC6ZUtdpKpzMbNlUGP', '/oauth/redirect', [ 'password', 'authorization_code', 'refresh_token', ] ); } });
// // add express oauth server
app.oauth = new oauthserver({
model: oauthModel,
grants: ['password', 'authorization_code', 'refresh_token'],
debug: true
});
// // https://github.com/expressjs/body-parser
app.use('/auth/token', bodyParser.urlencoded({ extended: false }), app.oauth.token()); // // // create application/x-www-form-urlencoded parser,发送Post请求获取Token
##---------------------------------
Options
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 express error handler to handle the 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()