@mobiuspace/node-auth0
v2.1.2
Published
```bash yarn add @mobiuspace/node-auth0 ```
Downloads
63
Keywords
Readme
安装
yarn add @mobiuspace/node-auth0
createServer(options: IServerOptions): Express
创建一个 node 服务,返回 Express 实例
IServerOptions
- appName: string - 应用名称
- staticDir: string - 静态资源目录
- auth0?: - auth0 权限配置
- domain: string
- audience: string
- issuer: string
- }
- apiList: IApiScopeType[] - 接口转发配置
IApiScopeType 定义
interface IApiType {
path: string
permissions: string[]
scope: string
target: [string, string]
mockTarget?: string
}
interface IApiScopeType {
scope: string
target: [string, string]
mockTarget?: string
apis: IApiType[]
}
example
带 auth0 鉴权
const path = require('path')
const { createServer } = require('@mobiuspace/node-auth0')
const config = require('./configs')
const server = createServer({
appName: config.appName,
staticDir: path.join(__dirname, 'public'), // 这里是打包之后的目录,后续在做优化
auth0: {
domain: config.auth0.domain,
audience: config.auth0.audience,
issuer: config.auth0.issuer
},
apiList: config.apiList
})
const port = process.env.PORT || 3040
server.listen(port, () => {
console.log('Express server started on http://localhost:' + port)
})
不带 auth0 鉴权
const path = require('path')
const { createServer } = require('@mobiuspace/node-auth0')
const config = require('./configs')
const server = createServer({
appName: config.appName,
staticDir: path.join(__dirname, 'public'),
apiList: config.apiList
// 不用传 auth0
})
const port = process.env.PORT || 3000
server.listen(port, () => {
console.log('Express server started on http://localhost:' + port)
})
中间件
导出中间件结合 Webpack DevServer 在开发阶段实现鉴权, mock, 调用内网接口等能力
jwtCheck({ domain, audience, issuer }): RequestHandler
ApiProxy(apiList: IApiScopeType[], mockHandler?: IMockHandlerType): RequestHandler
// setupProxy.js
const { jwtCheck, ApiProxy } = require('@mobiuspace/node-auth0')
const config = require('./configs')
module.exports = function (app) {
console.log(JSON.stringify(process.env))
app.use(
'/api',
jwtCheck(config.auth0),
ApiProxy(config.apiList, (path) => {
delete require.cache[require.resolve('./mock')] // 清除掉node require 缓存,用来解决每次修改mock需要重启的问题
const mockData = require('./mock')
return mockData[path] || null
})
)
}