Compare commits

..

2 Commits

Author SHA1 Message Date
d74a51db7f feat: Added verify account route, closes #28
All checks were successful
Build and Deploy / Deploy Web (push) Successful in 1m2s
Build and Deploy / Deploy Discord Bot (push) Successful in 44s
2023-06-05 16:05:03 +02:00
11a59d39af fix: Fixed jwt imports 2023-06-05 14:55:35 +02:00
6 changed files with 43 additions and 4 deletions

View File

@ -4,9 +4,9 @@ export default defineNuxtRouteMiddleware(async (to) => {
} }
try { try {
const user = await $fetch('/api/auth/user') const user = await $fetch('/api/users/@me')
if (!user.id) { if (!user._id) {
throw createError({ statusCode: 500, statusMessage: 'No user was found' }) throw createError({ statusCode: 500, statusMessage: 'No user was found' })
} }

View File

@ -1,4 +1,4 @@
import * as jwt from 'jsonwebtoken' import jwt from 'jsonwebtoken' //eslint-disable-line
type AccessTokenResponse = { type AccessTokenResponse = {
access_token: string, access_token: string,

View File

@ -0,0 +1,24 @@
export default defineEventHandler(async (event) => {
const { uuid } = getQuery(event)
let whitelistDoc
try {
whitelistDoc = await WhitelistModel.findOneAndUpdate({ uuid }, {
$set: {
uuid
},
$setOnInsert: {
code: generateCode(),
connected: false
}
}, { returnDocument: 'after', upsert: true })
return whitelistDoc
} catch (e: any) {
throw createError({ statusCode: 500, statusMessage: 'Failed to update/insert whitelist document' })
}
})
const generateCode = () => {
return Math.floor(100000 + Math.random() * 900000)
}

View File

@ -21,4 +21,11 @@ const userSchema = new Schema({
] ]
}) })
const whitelistSchema = new Schema({
uuid: { type: String, required: true, unique: true },
connected: { type: Boolean, required: true, default: false },
code: { type: String, required: true, unique: true, length: 6 }
})
export const UserModel = model<IUser>('User', userSchema) export const UserModel = model<IUser>('User', userSchema)
export const WhitelistModel = model<IWhitelist>('Whitelist', whitelistSchema)

View File

@ -3,5 +3,6 @@
"extends": "./.nuxt/tsconfig.json", "extends": "./.nuxt/tsconfig.json",
"compilerOptions": { "compilerOptions": {
"typeRoots": ["./types"] "typeRoots": ["./types"]
} },
"esModuleInterop": true
} }

View File

@ -21,4 +21,11 @@ declare global {
teamId: string, teamId: string,
accessToken?: string accessToken?: string
} }
interface IWhitelist {
_id: string,
uuid: string,
connected: boolean,
code: string
}
} }