Feat: Check Pwd with MD5 + Salt

MD5 加盐方式验证密码
This commit is contained in:
奇趣保罗 2022-05-25 23:32:17 +08:00
parent 02e7d3ad5a
commit ba5e92e2be
6 changed files with 50 additions and 6 deletions

View File

@ -20,6 +20,7 @@
"dotenv": "^16.0.0",
"isomorphic-unfetch": "^3.1.0",
"lodash": "^4.17.21",
"md5": "^2.3.0",
"passport": "^0.5.2",
"passport-jwt": "^4.0.0",
"prismjs": "^1.27.0",
@ -31,6 +32,7 @@
"@midwayjs/mock": "^3.3.0",
"@types/ioredis": "^4.28.10",
"@types/lodash": "^4.14.181",
"@types/md5": "^2.3.2",
"@types/passport-jwt": "^3.0.6",
"@types/prismjs": "^1.26.0",
"@types/react": "^17.0.44",

View File

@ -11,11 +11,17 @@ model User {
id String @id @default(cuid())
name String @unique
email String @unique
role UserRole @default(USER)
password String
created_at DateTime @default(now())
updated_at DateTime?
}
enum UserRole {
ADMIN
USER
}
model ACGM {
id Int @id @default(autoincrement())
title String?

View File

@ -1,4 +1,5 @@
import { Api, Get, Query, useContext, useInject } from "@midwayjs/hooks";
import { Context } from "@midwayjs/koa";
import { RedisService } from "@midwayjs/redis";
import { prisma } from "../utils/prisma";
@ -8,7 +9,7 @@ export default Api(
Get(),
Query<{ play?: string }>(),
async () => {
const ctx = useContext();
const ctx = useContext<Context>();
const client = await useInject(RedisService);
// 设置 Header

View File

@ -1,19 +1,24 @@
import { Api, Get, Query, useContext, useInject } from "@midwayjs/hooks";
import { Api, Get, Query, useContext, useInject, useConfig } from "@midwayjs/hooks";
import { JwtService } from "@midwayjs/jwt";
import { Context } from "@midwayjs/koa";
import { prisma } from "../../utils/prisma";
import md5 from "md5";
export default Api(
Get(),
Query<{ username: string, password: string }>(),
async () => {
const ctx = useContext();
const ctx = useContext<Context>();
const config = useConfig();
const jwt = await useInject(JwtService);
const pwd = md5(config.pwdSalt + ctx.query.password);
const user = await prisma.user.findFirst({
where: {
name: ctx.query.username,
password: ctx.query.password
name: ctx.query.username as string,
password: pwd
}
});

View File

@ -30,7 +30,8 @@ export default createConfiguration({
},
passport: {
session: false
}
},
pwdSalt: env.parsed ?. PAUL_PWD_SALT
}
}],
});

View File

@ -900,6 +900,11 @@
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.181.tgz#d1d3740c379fda17ab175165ba04e2d03389385d"
integrity sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==
"@types/md5@^2.3.2":
version "2.3.2"
resolved "https://registry.yarnpkg.com/@types/md5/-/md5-2.3.2.tgz#529bb3f8a7e9e9f621094eb76a443f585d882528"
integrity sha512-v+JFDu96+UYJ3/UWzB0mEglIS//MZXgRaJ4ubUPwOM0gvLc/kcQ3TWNYwENEK7/EcXGQVrW8h/XqednSjBd/Og==
"@types/mime@^1":
version "1.3.2"
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a"
@ -1240,6 +1245,11 @@ chalk@^2.0.0:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
charenc@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==
chokidar@^3.4.2, chokidar@^3.5.3:
version "3.5.3"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
@ -1417,6 +1427,11 @@ create-require@^1.1.0:
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
crypt@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=
csstype@^3.0.2:
version "3.0.11"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33"
@ -2025,6 +2040,11 @@ is-binary-path@~2.1.0:
dependencies:
binary-extensions "^2.0.0"
is-buffer@~1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
is-class@^0.0.9:
version "0.0.9"
resolved "https://registry.yarnpkg.com/is-class/-/is-class-0.0.9.tgz#3024c17b1cf8f6bdc1f3eca1bae507ea992b6d93"
@ -2330,6 +2350,15 @@ make-error@^1.1.1:
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
md5@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f"
integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==
dependencies:
charenc "0.0.2"
crypt "0.0.2"
is-buffer "~1.1.6"
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"