123456789101112131415161718192021222324252627282930313233 |
- import jwt from 'jsonwebtoken';
- const defaultOption = {
- secret: '',
- headerName: 'authorization',
- whiteList: ['/login', '/register'],
- };
- export default function (opts) {
- let { secret, headerName } = { ...defaultOption, ...opts };
- return async (ctx, next) => {
- try {
- const token = ctx.headers[headerName].replace('Bearer ', '');
- if (token == jwt.sign(jwt.verify(token, secret), secret)) {
- await next();
- } else {
- ctx.status = 4001;
- ctx.body = {
- code: 401,
- message: '您还未登录或登录已超时',
- };
- }
- } catch (err) {
- ctx.status = 401;
- ctx.body = {
- code: 401,
- message: '登录已超时',
- };
- }
- };
- }
|