首次登录自动生成随机密码

This commit is contained in:
whyour 2021-03-22 23:41:26 +08:00
parent dada261987
commit d41eb582e4
4 changed files with 114 additions and 7 deletions

View File

@ -4,6 +4,7 @@ import { Logger } from 'winston';
import * as fs from 'fs';
import config from '../config';
import jwt from 'jsonwebtoken';
import { createPassword } from '../config/util';
const route = Router();
export default (app: Router) => {
@ -19,6 +20,23 @@ export default (app: Router) => {
if (err) console.log(err);
const authInfo = JSON.parse(data);
if (username && password) {
if (
authInfo.username === 'admin' &&
authInfo.password === 'adminadmin'
) {
const newPassword = createPassword(16, 22);
fs.writeFileSync(
config.authConfigFile,
JSON.stringify({
username: authInfo.username,
password: newPassword,
}),
);
return res.send({
code: 100,
msg: '已初始化密码请前往auth.json查看并重新登录',
});
}
if (
username == authInfo.username &&
password == authInfo.password

View File

@ -65,7 +65,7 @@ export default (app: Router) => {
const cookieService = Container.get(CookieService);
const data = await cookieService.addCookie(req.body.cookies);
if (data) {
return res.send({ code: 500, data });
return res.send({ code: 400, data });
} else {
return res.send({ code: 200, data: '新建成功' });
}
@ -84,7 +84,7 @@ export default (app: Router) => {
const cookieService = Container.get(CookieService);
const data = await cookieService.updateCookie(req.body);
if (data) {
return res.send({ code: 500, data });
return res.send({ code: 400, data });
} else {
return res.send({ code: 200, data: '新建成功' });
}
@ -105,7 +105,7 @@ export default (app: Router) => {
req.body.cookie as string,
);
if (data) {
return res.send({ code: 500, data });
return res.send({ code: 400, data });
} else {
return res.send({ code: 200, data: '新建成功' });
}

View File

@ -15,8 +15,8 @@ export function getLastModifyFilePath(dir: string) {
const arr = fs.readdirSync(dir);
arr.forEach((item) => {
var fullpath = path.join(dir, item);
var stats = fs.statSync(fullpath);
const fullpath = path.join(dir, item);
const stats = fs.statSync(fullpath);
if (stats.isFile()) {
if (stats.mtimeMs >= 0) {
filePath = fullpath;
@ -26,3 +26,88 @@ export function getLastModifyFilePath(dir: string) {
}
return filePath;
}
export function createPassword(min: number, max: number): string {
const num = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
const english = [
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z',
];
const ENGLISH = [
'A',
'B',
'C',
'D',
'E',
'F',
'G',
'H',
'I',
'J',
'K',
'L',
'M',
'N',
'O',
'P',
'Q',
'R',
'S',
'T',
'U',
'V',
'W',
'X',
'Y',
'Z',
];
const special = ['-', '_', '#'];
const config = num.concat(english).concat(ENGLISH).concat(special);
const arr = [];
arr.push(getOne(num));
arr.push(getOne(english));
arr.push(getOne(ENGLISH));
arr.push(getOne(special));
const len = min + Math.floor(Math.random() * (max - min + 1));
for (let i = 4; i < len; i++) {
arr.push(config[Math.floor(Math.random() * config.length)]);
}
const newArr = [];
for (let j = 0; j < len; j++) {
newArr.push(arr.splice(Math.random() * arr.length, 1)[0]);
}
function getOne(arr) {
return arr[Math.floor(Math.random() * arr.length)];
}
return newArr.join('');
}

View File

@ -18,11 +18,15 @@ const Login = () => {
},
})
.then((data) => {
if (data.code == 200) {
if (data.code === 200) {
localStorage.setItem(config.authKey, data.token);
history.push('/cookie');
} else if (data.code === 100) {
notification.warn({
message: data.msg,
});
} else {
notification.open({
notification.error({
message: data.msg,
});
}