@zhaochy/egg-oauth2-server
Version:
koa-oauth-server(node-oauth2-server) plugin for egg
41 lines (32 loc) • 1.35 kB
JavaScript
;
const path = require('path');
const OAuth2Server = require('./lib/server');
const assert = require('assert');
const MIDDLEWARE_NAME_OAUTH2 = 'oauth2';
module.exports = app => {
app.coreLogger.info('[egg-oauth2-server] egg-oauth2-server begin start');
const start = Date.now();
const { config } = app;
const model = app.loader.loadFile(path.join(app.config.baseDir, 'app/extend/oauth.js'))
// @see https://github.com/Azard/egg-oauth2-server/issues/31
|| app.loader.loadFile(path.join(app.config.baseDir, 'app/extend/oauth.ts'));
if (model === null) {
app.coreLogger.error('[egg-oauth2-server] not find app/extend/oauth.js, egg-oauth2-server start fail');
return;
}
try {
app.oAuth2Server = new OAuth2Server(config.oAuth2Server, model);
} catch (e) {
app.coreLogger.error('[egg-oauth2-server] start fail, %s', e);
return;
}
// insert OAuth2 Authentication Middleware
const index = config.appMiddleware.indexOf(MIDDLEWARE_NAME_OAUTH2);
assert.equal(
index,
-1,
`Duplication of middleware name found: ${MIDDLEWARE_NAME_OAUTH2}. Rename your middleware other than "${MIDDLEWARE_NAME_OAUTH2}" please.`
);
config.appMiddleware.unshift(MIDDLEWARE_NAME_OAUTH2);
app.coreLogger.info('[egg-oauth2-server] egg-oauth2-server started use %d ms', Date.now() - start);
};