@kokkoro/web
Version:
Create web serve for kokkoro.
32 lines (31 loc) • 1.14 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
const app_1 = require("../app");
async function authHandler(ctx, next) {
const { authorization } = ctx.header;
const token = authorization?.replace('Bearer ', '') ?? '';
jsonwebtoken_1.default.verify(token, 'kokkoro', (error, user) => {
if (error) {
let message;
switch (error.name) {
case 'TokenExpiredError':
message = 'token 已过期';
break;
case 'JsonWebTokenError':
message = '无效的 token';
break;
default:
message = error.message;
break;
}
throw new app_1.SourceError(401, message);
}
ctx.state.user = user;
});
await next();
}
exports.default = authHandler;