| import { Context, Next } from 'koa'; | |
| export function whiteListMiddleware() { | |
| return async (ctx: Context, next: Next) => { | |
| const host = ctx.request.host; | |
| const whiteList = process.env.WHITELIST_DOMAINS; | |
| const list = whiteList ? whiteList.split(',') : []; | |
| console.log('[whiteListMiddleware]', list, host); | |
| if (!list.length) { | |
| return await next(); | |
| } | |
| if (list.some(item => host.includes(item.trim()))) { | |
| await next(); | |
| } else { | |
| ctx.res.statusCode = 401; | |
| ctx.body = 'Unauthorized domain.'; | |
| } | |
| }; | |
| } | |