You've already forked AstralRinth
forked from didirus/AstralRinth
More secure custom authentication solution (#126)
* Remove Nuxt Auth from the project, and switch to a custom solution * Replace old testing code * Remove warnings * Add comments to hard to understand function calls in middleware * Use arrow functions
This commit is contained in:
@@ -54,7 +54,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
async logout() {
|
||||
await this.$auth.setToken('local', false)
|
||||
this.$cookies.remove('auth-token')
|
||||
await this.$router.replace(
|
||||
'https://api.modrinth.com/api/v1/auth/init?url=https://modrinth.com/'
|
||||
)
|
||||
|
||||
@@ -84,20 +84,18 @@ export default {
|
||||
ModCard,
|
||||
},
|
||||
async asyncData(data) {
|
||||
const config = {
|
||||
headers: {
|
||||
Authorization: data.$auth.getToken('local')
|
||||
? data.$auth.getToken('local')
|
||||
: '',
|
||||
},
|
||||
}
|
||||
|
||||
const mods = (
|
||||
await axios.get(`https://api.modrinth.com/api/v1/moderation/mods`, config)
|
||||
await axios.get(
|
||||
`https://api.modrinth.com/api/v1/moderation/mods`,
|
||||
data.$auth.headers
|
||||
)
|
||||
).data
|
||||
|
||||
const reports = (
|
||||
await axios.get(`https://api.modrinth.com/api/v1/report`, config)
|
||||
await axios.get(
|
||||
`https://api.modrinth.com/api/v1/report`,
|
||||
data.$auth.headers
|
||||
)
|
||||
).data
|
||||
|
||||
return {
|
||||
@@ -107,36 +105,20 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
async changeModStatus(id, status, index) {
|
||||
const config = {
|
||||
headers: {
|
||||
Authorization: this.$auth.getToken('local')
|
||||
? this.$auth.getToken('local')
|
||||
: '',
|
||||
},
|
||||
}
|
||||
|
||||
await axios.patch(
|
||||
`https://api.modrinth.com/api/v1/mod/${id}`,
|
||||
{
|
||||
status,
|
||||
},
|
||||
config
|
||||
this.$auth.headers
|
||||
)
|
||||
|
||||
this.mods.splice(index, 1)
|
||||
},
|
||||
async deleteReport(index) {
|
||||
const config = {
|
||||
headers: {
|
||||
Authorization: this.$auth.getToken('local')
|
||||
? this.$auth.getToken('local')
|
||||
: '',
|
||||
},
|
||||
}
|
||||
|
||||
await axios.delete(
|
||||
`https://api.modrinth.com/api/v1/report/${this.reports[index].id}`,
|
||||
config
|
||||
this.$auth.headers
|
||||
)
|
||||
|
||||
this.reports.splice(index, 1)
|
||||
|
||||
@@ -53,18 +53,10 @@ export default {
|
||||
DashboardPage,
|
||||
},
|
||||
async asyncData(data) {
|
||||
const config = {
|
||||
headers: {
|
||||
Authorization: data.$auth.getToken('local')
|
||||
? data.$auth.getToken('local')
|
||||
: '',
|
||||
},
|
||||
}
|
||||
|
||||
const notifications = (
|
||||
await axios.get(
|
||||
`https://api.modrinth.com/api/v1/user/${data.$auth.user.id}/notifications`,
|
||||
config
|
||||
data.$auth.headers
|
||||
)
|
||||
).data
|
||||
|
||||
@@ -82,25 +74,19 @@ export default {
|
||||
method: notification.actions[index].action_route[0].toLowerCase(),
|
||||
url: `https://api.modrinth.com/api/v1/${notification.actions[index].action_route[1]}`,
|
||||
headers: {
|
||||
Authorization: this.$auth.getToken('local'),
|
||||
Authorization: this.$auth.token,
|
||||
},
|
||||
}
|
||||
|
||||
await axios(config)
|
||||
}
|
||||
|
||||
const config = {
|
||||
headers: {
|
||||
Authorization: this.$auth.getToken('local')
|
||||
? this.$auth.getToken('local')
|
||||
: '',
|
||||
},
|
||||
}
|
||||
|
||||
await axios.delete(
|
||||
`https://api.modrinth.com/api/v1/notification/${notification.id}`,
|
||||
config
|
||||
this.$auth.headers
|
||||
)
|
||||
|
||||
this.notifications.splice(index, 1)
|
||||
} catch (err) {
|
||||
this.$notify({
|
||||
group: 'main',
|
||||
|
||||
@@ -46,22 +46,14 @@ export default {
|
||||
ModCard,
|
||||
},
|
||||
async asyncData(data) {
|
||||
const config = {
|
||||
headers: {
|
||||
Authorization: data.$auth.getToken('local')
|
||||
? data.$auth.getToken('local')
|
||||
: '',
|
||||
},
|
||||
}
|
||||
|
||||
let res = await axios.get(
|
||||
`https://api.modrinth.com/api/v1/user/${data.$auth.user.id}/mods`,
|
||||
config
|
||||
data.$auth.headers
|
||||
)
|
||||
|
||||
res = await axios.get(
|
||||
`https://api.modrinth.com/api/v1/mods?ids=${JSON.stringify(res.data)}`,
|
||||
config
|
||||
data.$auth.headers
|
||||
)
|
||||
|
||||
return {
|
||||
|
||||
@@ -114,7 +114,7 @@ export default {
|
||||
this.name = this.$auth.user.name
|
||||
this.email = this.$auth.user.email
|
||||
this.bio = this.$auth.user.bio
|
||||
this.token = this.$auth.getToken('local')
|
||||
this.token = this.$auth.token
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -134,7 +134,7 @@ export default {
|
||||
this.$router.replace('/dashboard/misc/revoke-token')
|
||||
},
|
||||
async copyToken() {
|
||||
await this.$copyText(this.token)
|
||||
await navigator.clipboard.writeText(this.token)
|
||||
this.$notify({
|
||||
group: 'main',
|
||||
title: 'Copied to clipboard.',
|
||||
@@ -143,12 +143,6 @@ export default {
|
||||
})
|
||||
},
|
||||
async editProfile() {
|
||||
const config = {
|
||||
headers: {
|
||||
Authorization: this.$auth.getToken('local'),
|
||||
},
|
||||
}
|
||||
|
||||
this.$nuxt.$loading.start()
|
||||
|
||||
try {
|
||||
@@ -162,10 +156,12 @@ export default {
|
||||
await axios.patch(
|
||||
`https://api.modrinth.com/api/v1/user/${this.$auth.user.id}`,
|
||||
data,
|
||||
config
|
||||
this.$auth.headers
|
||||
)
|
||||
|
||||
await this.$auth.fetchUser()
|
||||
await this.$store.dispatch('auth/fetchUser', {
|
||||
token: this.$auth.token,
|
||||
})
|
||||
} catch (err) {
|
||||
this.$notify({
|
||||
group: 'main',
|
||||
@@ -178,18 +174,12 @@ export default {
|
||||
this.$nuxt.$loading.finish()
|
||||
},
|
||||
async deleteAccount() {
|
||||
const config = {
|
||||
headers: {
|
||||
Authorization: this.$auth.getToken('local'),
|
||||
},
|
||||
}
|
||||
|
||||
this.$nuxt.$loading.start()
|
||||
|
||||
try {
|
||||
await axios.delete(
|
||||
`https://api.modrinth.com/api/v1/user/${this.$auth.user.id}`,
|
||||
config
|
||||
this.$auth.headers
|
||||
)
|
||||
} catch (err) {
|
||||
this.$notify({
|
||||
|
||||
Reference in New Issue
Block a user