feat: Integrate tracking functionality in authentication API routes for enhanced user activity monitoring; update tracking data structure in tracking route
This commit is contained in:
parent
e66b009dd3
commit
4e8f698f88
@ -3,11 +3,18 @@ import { cookies } from 'next/headers'
|
||||
import { NextResponse } from 'next/server'
|
||||
import { getIronSession } from 'iron-session'
|
||||
import { sessionOptions } from '@/libs/session'
|
||||
import { tracking } from '@/libs/tracking'
|
||||
|
||||
export async function GET(request: Request) {
|
||||
const cookieStore = await cookies()
|
||||
const session = await getIronSession<SessionData>(cookieStore, sessionOptions)
|
||||
|
||||
tracking({
|
||||
url: '/api/auth/logout',
|
||||
data: JSON.stringify({
|
||||
userId: session.userId,
|
||||
}),
|
||||
})
|
||||
session.destroy()
|
||||
// return redirect('/login')
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ import { NextResponse } from 'next/server'
|
||||
import { getIronSession } from 'iron-session'
|
||||
import { axiosInstance } from '@/libs/axios'
|
||||
import { sessionOptions } from '@/libs/session'
|
||||
import { tracking } from '@/libs/tracking'
|
||||
|
||||
export async function POST(request: Request) {
|
||||
const { loginId, pwd } = await request.json()
|
||||
@ -15,6 +16,13 @@ export async function POST(request: Request) {
|
||||
console.log('🚀 ~ result ~ result:', result.data)
|
||||
|
||||
if (result.data.result.code === 200) {
|
||||
tracking({
|
||||
url: `/api/auth/login`,
|
||||
data: JSON.stringify({
|
||||
loginId,
|
||||
pwd,
|
||||
}),
|
||||
})
|
||||
const cookieStore = await cookies()
|
||||
const session = await getIronSession<SessionData>(cookieStore, sessionOptions)
|
||||
|
||||
|
||||
@ -1,17 +1,25 @@
|
||||
import type { SessionData } from '@/types/Auth'
|
||||
import { NextResponse } from 'next/server'
|
||||
import { cookies } from 'next/headers'
|
||||
import { Prisma } from '@prisma/client'
|
||||
import { prisma } from '@/libs/prisma'
|
||||
import { getIronSession } from 'iron-session'
|
||||
import { sessionOptions } from '@/libs/session'
|
||||
|
||||
export const POST = async (request: Request) => {
|
||||
export async function POST(request: Request) {
|
||||
const { url, data } = await request.json()
|
||||
|
||||
const cookieStore = await cookies()
|
||||
const session = await getIronSession<SessionData>(cookieStore, sessionOptions)
|
||||
|
||||
let owner = session.userId
|
||||
let owner = ''
|
||||
if (url === '/api/auth/login') {
|
||||
owner = 'Login'
|
||||
} else if (url === '/api/auth/logout') {
|
||||
owner = 'Logout'
|
||||
} else {
|
||||
owner = session.userId ?? 'Direct'
|
||||
}
|
||||
|
||||
let type = ''
|
||||
if (url.includes('api')) {
|
||||
type = 'api'
|
||||
@ -20,12 +28,12 @@ export const POST = async (request: Request) => {
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
const result = await Prisma.MS_USR_TRK.create({
|
||||
const result = await prisma.MS_USR_TRK.create({
|
||||
data: {
|
||||
owner,
|
||||
type,
|
||||
url,
|
||||
data: JSON.stringify(data),
|
||||
OWNER: owner,
|
||||
TYPE: type,
|
||||
URL: url,
|
||||
DATA: JSON.stringify(data),
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
import axios from 'axios'
|
||||
import { tracking } from './tracking'
|
||||
|
||||
export const axiosInstance = (url: string | null | undefined) => {
|
||||
const baseURL = url || process.env.NEXT_PUBLIC_API_URL
|
||||
@ -12,7 +11,7 @@ export const axiosInstance = (url: string | null | undefined) => {
|
||||
|
||||
instance.interceptors.request.use(
|
||||
(config) => {
|
||||
console.log('🚀 ~ config:', config)
|
||||
// console.log('🚀 ~ config:', config)
|
||||
return config
|
||||
},
|
||||
(error) => {
|
||||
|
||||
@ -108,7 +108,7 @@ export default function EdgeProvider({ children, sessionData }: EdgeProviderProp
|
||||
//사이드바 초기화
|
||||
reset()
|
||||
// 페이지 이벤트 트래킹
|
||||
// handlePageEvent(pathname)
|
||||
handlePageEvent(pathname)
|
||||
}, [pathname])
|
||||
|
||||
return <>{children}</>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user