Skip to content

Commit 62b20e8

Browse files
committed
refactor: migrate to nuxt-auth v3
1 parent 6185790 commit 62b20e8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+111
-99
lines changed

components/Account/Password.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ rules.value = {
7979
async function handleChangePassword() {
8080
await useAuth().changePassword(model.value)
8181
.catch((error) => {
82-
apiErrors.value.wrongPassword = error.data.message === 'wrong-password'
82+
apiErrors.value.wrongPassword = error.data.message === 'Wrong password'
8383
})
8484
}
8585
</script>

components/Account/Sessions.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
<template #header>
2525
<title-date
2626
:title=" [
27-
session.ua && UAParser.UAParser(session.ua).browser.name,
28-
session.ua && UAParser.UAParser(session.ua).os.name,
29-
session.ua && UAParser.UAParser(session.ua).device.model,
27+
session.userAgent && UAParser.UAParser(session.userAgent).browser.name,
28+
session.userAgent && UAParser.UAParser(session.userAgent).os.name,
29+
session.userAgent && UAParser.UAParser(session.userAgent).device.model,
3030
]
3131
.join(' ')"
3232
:updated-at="session.updatedAt"

config/auth/index.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ import type { ModuleOptions } from '@bg-dev/nuxt-auth'
33
export const auth: Partial<ModuleOptions> = {
44
baseUrl: 'http://localhost:3000',
55

6-
prisma: false,
7-
86
accessToken: {
97
jwtSecret: '*',
108
},
@@ -15,17 +13,17 @@ export const auth: Partial<ModuleOptions> = {
1513

1614
oauth: {
1715
google: {
18-
clientId: '',
19-
clientSecret: '',
16+
clientId: '*',
17+
clientSecret: '*',
2018
scopes: 'email profile',
2119
authorizeUrl: 'https://accounts.google.com/o/oauth2/auth',
2220
tokenUrl: 'https://accounts.google.com/o/oauth2/token',
2321
userUrl: 'https://www.googleapis.com/oauth2/v3/userinfo',
2422
},
2523

2624
github: {
27-
clientId: '',
28-
clientSecret: '',
25+
clientId: '*',
26+
clientSecret: '*',
2927
scopes: 'user:email',
3028
authorizeUrl: 'https://github.com/login/oauth/authorize',
3129
tokenUrl: 'https://github.com/login/oauth/access_token',
@@ -45,16 +43,16 @@ export const auth: Partial<ModuleOptions> = {
4543
enableGlobalAuthMiddleware: true,
4644

4745
registration: {
48-
enable: true,
46+
enabled: true,
4947
requireEmailVerification: true,
5048
defaultRole: 'user',
5149
},
5250

5351
email: {
54-
from: '',
52+
from: '*',
5553
provider: {
5654
name: 'sendgrid',
57-
apiKey: '',
55+
apiKey: '*',
5856
},
5957
templates: {
6058
emailVerify: './config/auth/email-verify.html',

package-lock.json

Lines changed: 14 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"typecheck": "nuxi typecheck"
2727
},
2828
"devDependencies": {
29-
"@bg-dev/nuxt-auth": "^2.6.0",
29+
"@bg-dev/nuxt-auth": "^3.0.1-rc",
3030
"@bg-dev/nuxt-s3": "^2.0.0",
3131
"@nuxt/devtools": "^1.1.3",
3232
"@nuxt/eslint": "^0.3.13",
@@ -50,5 +50,6 @@
5050
"mustache": "^4.2.0",
5151
"ua-parser-js": "^1.0.37",
5252
"zod": "^3.22.4"
53-
}
53+
},
54+
"packageManager": "pnpm@8.7.0+sha1.4a6f863625170af87d027789f72662e0601ecb57"
5455
}

pages/auth/login.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,9 @@ async function handleSubmit() {
149149
email: model.value.email,
150150
password: model.value.password,
151151
}).catch((error) => {
152-
apiErrors.value.wrongCredentials = error.data.message === 'wrong-credentials'
153-
apiErrors.value.accountNotVerified = error.data.message === 'account-not-verified'
154-
apiErrors.value.accountSuspended = error.data.message === 'account-suspended'
152+
apiErrors.value.wrongCredentials = error.data.message === 'Wrong credentials'
153+
apiErrors.value.accountNotVerified = error.data.message === 'Account not verified'
154+
apiErrors.value.accountSuspended = error.data.message === 'Account suspended'
155155
})
156156
}
157157
</script>

pages/auth/register.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,8 @@ async function handleSubmit() {
161161
await requestEmailVerify(model.value.email)
162162
success.value = true
163163
}).catch(async (error) => {
164-
apiErrors.value.emailAlreadyExists = error.data.message.includes('email-used-with')
165-
if (error.data.message === 'account-not-verified') {
164+
apiErrors.value.emailAlreadyExists = error.data.message === 'Email already used'
165+
if (error.data.message === 'Account not verified') {
166166
await requestEmailVerify(model.value.email)
167167
success.value = true
168168
}

prisma/mongo.schema.prisma

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,26 @@ datasource db {
1111
}
1212

1313
model User {
14-
id String @id @default(auto()) @map("_id") @db.ObjectId
14+
id String @id @default(auto()) @map("_id") @db.ObjectId
1515
name String
16-
email String @unique
16+
email String @unique
1717
picture String
18-
role String @default("user")
19-
provider String @default("default")
18+
role String @default("user")
19+
provider String @default("default")
2020
password String?
21-
verified Boolean @default(false)
22-
suspended Boolean @default(false)
23-
requestedPasswordReset Boolean @default(false)
24-
createdAt DateTime @default(now())
25-
updatedAt DateTime @updatedAt
26-
refreshTokens RefreshToken[]
21+
verified Boolean @default(false)
22+
suspended Boolean @default(false)
23+
requestedPasswordReset Boolean @default(false)
24+
createdAt DateTime @default(now())
25+
updatedAt DateTime @updatedAt
26+
sessions Session[]
2727
projects Project[]
2828
devices Device[]
2929
mqtt Mqtt?
3030
report Report?
3131
}
3232

33-
model RefreshToken {
33+
model Session {
3434
id String @id @default(auto()) @map("_id") @db.ObjectId
3535
uid String
3636
userId String @db.ObjectId

prisma/sql.schema.prisma

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,26 @@ datasource db {
1111
}
1212

1313
model User {
14-
id String @id @default(uuid())
14+
id String @id @default(uuid())
1515
name String
16-
email String @unique
16+
email String @unique
1717
picture String
18-
role String @default("user")
19-
provider String @default("default")
18+
role String @default("user")
19+
provider String @default("default")
2020
password String?
21-
verified Boolean @default(false)
22-
suspended Boolean @default(false)
23-
requestedPasswordReset Boolean @default(false)
24-
createdAt DateTime @default(now())
25-
updatedAt DateTime @updatedAt
26-
refreshTokens RefreshToken[]
21+
verified Boolean @default(false)
22+
suspended Boolean @default(false)
23+
requestedPasswordReset Boolean @default(false)
24+
createdAt DateTime @default(now())
25+
updatedAt DateTime @updatedAt
26+
sessions Session[]
2727
projects Project[]
2828
devices Device[]
2929
mqtt Mqtt?
3030
report Report?
3131
}
3232

33-
model RefreshToken {
33+
model Session {
3434
id String @id @default(uuid())
3535
uid String
3636
userId String

server/api/account/profile.patch.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export default defineEventHandler(async (event) => {
1313
multipart.picture = await uploadObject(multipart.file, userId, multipart.picture)
1414
}
1515

16-
const user = await event.context.prisma.user
16+
const user = await event.context.auth.adapter.source.user
1717
.update({
1818
where: {
1919
id: userId,

0 commit comments

Comments
 (0)