qinglong/back/api/auth.ts
2021-03-15 21:09:30 +08:00

43 lines
1.3 KiB
TypeScript

import { Router, Request, Response, NextFunction } from 'express';
import { Container } from 'typedi';
import { Logger } from 'winston';
import * as fs from 'fs';
import config from '../config';
import jwt from 'jsonwebtoken';
const route = Router();
export default (app: Router) => {
app.use('/', route);
route.post(
'/auth',
async (req: Request, res: Response, next: NextFunction) => {
const logger: Logger = Container.get('logger');
try {
let username = req.body.username;
let password = req.body.password;
fs.readFile(config.authConfigFile, 'utf8', function (err, data) {
if (err) console.log(err);
var con = JSON.parse(data);
if (username && password) {
if (username == con.user && password == con.password) {
let token = jwt.sign(
{ username, password },
config.secret as any,
{ expiresIn: 60 * 60 * 24 * 7, algorithm: 'HS384' },
);
res.send({ err: 0, token });
} else {
res.send({ err: 1, msg: config.authError });
}
} else {
res.send({ err: 1, msg: '请输入用户名密码!' });
}
});
} catch (e) {
logger.error('🔥 error: %o', e);
return next(e);
}
},
);
};