import { Api, Get, Query, useContext, useInject } from "@midwayjs/hooks"; import { JwtService } from "@midwayjs/jwt"; import { prisma } from "../../utils/prisma"; export default Api( Get(), Query<{ username: string, password: string }>(), async () => { const ctx = useContext(); const jwt = await useInject(JwtService); const token = await jwt.sign({ name: "Paul" }); const user = await prisma.user.findFirst({ where: { name: ctx.query.username, password: ctx.query.password } }); if (!user) { return { code: 0, msg: "Invalid username or password" } } // Token ctx.cookies.set("paul-token", token, { maxAge: 60 * 60 * 24 * 2 * 100, httpOnly: true }); // 标记已登录 ctx.cookies.set("paul-logined", 1, { maxAge: 60 * 60 * 24 * 2 * 100, httpOnly: false }); return { code: 1, msg: "Success", data: { profile: { name: "Paul", avatar: "https://sdn.geekzu.org/avatar/d22eb460ecab37fcd7205e6a3c55c228?s=200&r=X&d=", }, token } } } );