diff --git a/app/api/common.ts b/app/api/common.ts index a50da30e5..6ec3017d5 100644 --- a/app/api/common.ts +++ b/app/api/common.ts @@ -159,21 +159,22 @@ export async function requestLog( } const baseUrl = "http://localhost:3000"; const ip = getIP(req); - let h_userName = await getSessionName(); - console.log("[中文]", h_userName, baseUrl); + + let { session, name } = await getSessionName(); + console.log("[中文]", name, session, baseUrl); const logData = { ip: ip, path: url_path, logEntry: JSON.stringify(jsonBody), model: url_path.startsWith("mj/") ? "midjourney" : jsonBody?.model, // 后面尝试请求是添加到参数 - userName: h_userName, + userName: name, + userID: session?.user?.id, }; await fetch(`${baseUrl}/api/logs/openai`, { method: "POST", headers: { "Content-Type": "application/json", - // ...req.headers, }, body: JSON.stringify(logData), }); diff --git a/app/api/logs/[...path]/route.ts b/app/api/logs/[...path]/route.ts index aad4ad087..28b0b3fde 100644 --- a/app/api/logs/[...path]/route.ts +++ b/app/api/logs/[...path]/route.ts @@ -9,12 +9,13 @@ async function handle( ) { try { const request_data = await req.json(); - if (request_data?.userName) { - await insertUser({ - name: request_data?.userName, - email: request_data?.userName, - }); - } + console.log("log", request_data); + // if (request_data?.userName) { + // await insertUser({ + // name: request_data?.userName, + // email: request_data?.userName, + // }); + // } // console.log("===========4", request_data); try { if (request_data?.logEntry) { diff --git a/lib/auth.ts b/lib/auth.ts index 0388479d5..4f27aa9b3 100644 --- a/lib/auth.ts +++ b/lib/auth.ts @@ -82,15 +82,13 @@ export const authOptions: NextAuthOptions = { // 判断姓名格式是否符合要求,不符合则拒绝 if (username && isName(username)) { // Any object returned will be saved in `user` property of the JWT - let user:{[key: string]: string} = { - name: username, - // email: null - } + let user:{[key: string]: string} = {} if (isEmail(username)) { - user['email'] = username; + user['email'] = username; + } else { + user['name'] = username; } - await insertUser(user); - return user + return await insertUser(user) ?? user } else { // If you return null then an error will be displayed advising the user to check their details. // return null @@ -125,7 +123,7 @@ export const authOptions: NextAuthOptions = { callbacks: { jwt: async ({ token, user }) => { // const current_time = Math.floor(Date.now() / 1000); - // console.log('=============', token, user, current_time) + console.log('=============', token, user,) if (user) { token.user = user; } @@ -139,6 +137,7 @@ export const authOptions: NextAuthOptions = { // @ts-expect-error username: token?.user?.username || token?.user?.gh_username, }; + console.log('555555555,', session, token) return session; }, }, @@ -159,8 +158,11 @@ export function getSession() { export async function getSessionName() { const session = await getSession(); - // console.log('in........',) - return session?.user?.email || session?.user?.name + console.log('in........', session) + return { + name: session?.user?.email || session?.user?.name, + session + } } // export function withSiteAuth(action: any) { @@ -232,21 +234,22 @@ export async function insertUser(user: {[key: string]: string}) { } const existingUser = conditions.length? await prisma.user.findFirst({ where: { - OR: conditions, + AND: conditions, }, }) : null; // console.log('[LOG]', existingUser, user, '=======') if (!existingUser) { - const newUser = await prisma.user.create({ + return await prisma.user.create({ data: user }) - // console.log('[LOG]', user, '=======') + } else { + console.log('user==========', existingUser) + return existingUser; } } catch (e) { console.log('[Prisma Error]', e); return false; } - return true; } diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 022d20013..741ac3512 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -16,8 +16,8 @@ model User { id String @id @default(cuid()) name String? @unique // if you are using Github OAuth, you can get rid of the username attribute (that is for Twitter OAuth) - username String? - gh_username String? + username String? @unique + gh_username String? @unique email String? @unique emailVerified DateTime? image String? @@ -70,10 +70,11 @@ model LogEntry { path String? @db.Text model String? @db.VarChar(25) userName String? @db.VarChar(50) + userID String? createdAt DateTime @default(now()) // logEntry String? @db.Text logToken Int? @default(0) - user User? @relation(fields: [userName], references: [name], onDelete: NoAction) + user User? @relation(fields: [userID], references: [id], onDelete: NoAction) } model VerificationToken {