Compare commits
No commits in common. "1505667e1eab619f012610bc8b292c87412595cb" and "3a0e889626f2bfe75c6df1c03a4bbc8e15c7b83f" have entirely different histories.
1505667e1e
...
3a0e889626
9 changed files with 8 additions and 100 deletions
|
|
@ -35,7 +35,7 @@ module.exports =
|
||||||
message: err
|
message: err
|
||||||
|
|
||||||
.then (session_id) ->
|
.then (session_id) ->
|
||||||
# login or resume successful
|
#
|
||||||
reply.send
|
reply.send
|
||||||
success: true
|
success: true
|
||||||
message: session_id
|
message: session_id
|
||||||
|
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
logger = (require 'logging').default 'logout'
|
|
||||||
|
|
||||||
# session storage (volatile data)
|
|
||||||
session = (require '../../session')
|
|
||||||
# fftcg.db (persistent data)
|
|
||||||
fftcgdb = (require '../../db')
|
|
||||||
|
|
||||||
module.exports =
|
|
||||||
url: '/user/logout'
|
|
||||||
method: 'POST'
|
|
||||||
schema:
|
|
||||||
body:
|
|
||||||
session: type: 'string'
|
|
||||||
response:
|
|
||||||
200:
|
|
||||||
type: 'object'
|
|
||||||
required: ['success']
|
|
||||||
properties:
|
|
||||||
success:
|
|
||||||
type: 'boolean'
|
|
||||||
const: true
|
|
||||||
|
|
||||||
handler: (request, reply) ->
|
|
||||||
new Promise (resolve) ->
|
|
||||||
session.destroy request.body.session ? ""
|
|
||||||
.then ->
|
|
||||||
# active session found
|
|
||||||
logger.debug "OK removed session '#{request.body.session}'"
|
|
||||||
resolve null
|
|
||||||
|
|
||||||
.catch ->
|
|
||||||
resolve null
|
|
||||||
|
|
||||||
.then ->
|
|
||||||
reply.send
|
|
||||||
success: true
|
|
||||||
|
|
@ -14,8 +14,6 @@ fastify.route (require "./routes/#{route}") for route in [
|
||||||
'test'
|
'test'
|
||||||
# log in user
|
# log in user
|
||||||
'user/login'
|
'user/login'
|
||||||
# log out user
|
|
||||||
'user/logout'
|
|
||||||
# register user
|
# register user
|
||||||
'user/register'
|
'user/register'
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -33,16 +33,6 @@ class FFTCGSESSION
|
||||||
logger.info "OK '#{digest}' created"
|
logger.info "OK '#{digest}' created"
|
||||||
resolve digest
|
resolve digest
|
||||||
|
|
||||||
destroy: (digest) ->
|
|
||||||
new Promise (resolve, reject) =>
|
|
||||||
# delete hash immediately
|
|
||||||
@db.del digest, (err, res) ->
|
|
||||||
if res == 0
|
|
||||||
reject null
|
|
||||||
else
|
|
||||||
logger.info "OK '#{digest}' deleted"
|
|
||||||
resolve null
|
|
||||||
|
|
||||||
check: (digest) ->
|
check: (digest) ->
|
||||||
new Promise (resolve, reject) =>
|
new Promise (resolve, reject) =>
|
||||||
# refresh expiry timer on digest
|
# refresh expiry timer on digest
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
{{ buttonText }}
|
{{ buttonText }}
|
||||||
</v-btn>
|
</v-btn>
|
||||||
|
|
||||||
<v-btn color="error" @click.native="dialog = false">
|
<v-btn color="error" @click="dialog = false">
|
||||||
Cancel
|
Cancel
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</v-card-actions>
|
</v-card-actions>
|
||||||
|
|
@ -46,7 +46,7 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
validate() {
|
validate() {
|
||||||
if (this.$refs.form.validate()) {
|
if (this.$refs.form.validate()) {
|
||||||
this.$emit('confirm')
|
this.$parent.confirm()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<FormDialog buttonText="Login" @confirm="doLogin">
|
<FormDialog buttonText="Login">
|
||||||
<v-card-title class="headline">
|
<v-card-title class="headline">
|
||||||
Log In
|
Log In
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
|
|
@ -43,7 +43,7 @@ export default {
|
||||||
}),
|
}),
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
doLogin() {
|
confirm() {
|
||||||
axios
|
axios
|
||||||
.post('/user/login', {
|
.post('/user/login', {
|
||||||
session: Cookies.get('session'),
|
session: Cookies.get('session'),
|
||||||
|
|
@ -56,7 +56,6 @@ export default {
|
||||||
if (response.data.success) {
|
if (response.data.success) {
|
||||||
Cookies.set('session', response.data.message, { expires: 30 })
|
Cookies.set('session', response.data.message, { expires: 30 })
|
||||||
console.log('cookie', Cookies.get())
|
console.log('cookie', Cookies.get())
|
||||||
this.$router.push('about')
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<FormDialog buttonText="Register" @confirm="doRegister">
|
<FormDialog buttonText="Register">
|
||||||
<v-card-title class="headline">
|
<v-card-title class="headline">
|
||||||
Register
|
Register
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
|
|
@ -67,7 +67,7 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
doRegister() {
|
confirm() {
|
||||||
axios
|
axios
|
||||||
.post('/user/register', {
|
.post('/user/register', {
|
||||||
session: null,
|
session: null,
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@
|
||||||
</p>
|
</p>
|
||||||
</v-flex>
|
</v-flex>
|
||||||
<p>user session: {{ sessionID }}</p>
|
<p>user session: {{ sessionID }}</p>
|
||||||
<v-btn @click.native="logout">Logout</v-btn>
|
|
||||||
</v-container>
|
</v-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -22,36 +21,13 @@ export default {
|
||||||
sessionID: ''
|
sessionID: ''
|
||||||
}),
|
}),
|
||||||
|
|
||||||
methods: {
|
|
||||||
goHome() {
|
|
||||||
Cookies.remove('session')
|
|
||||||
this.$router.push({ name: 'home' })
|
|
||||||
},
|
|
||||||
|
|
||||||
logout() {
|
|
||||||
axios
|
|
||||||
.post('/user/logout', {
|
|
||||||
session: Cookies.get('session')
|
|
||||||
})
|
|
||||||
.then(response => {
|
|
||||||
if (response.data.success) {
|
|
||||||
this.goHome()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
axios
|
axios
|
||||||
.post('/user/login', {
|
.post('/user/login', {
|
||||||
session: Cookies.get('session')
|
session: Cookies.get('session')
|
||||||
})
|
})
|
||||||
.then(response => {
|
.then(response => {
|
||||||
if (response.data.success) {
|
this.sessionID = response.data.message
|
||||||
this.sessionID = response.data.message
|
|
||||||
} else {
|
|
||||||
this.goHome()
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,38 +15,19 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import * as Cookies from 'js-cookie'
|
|
||||||
import axios from '@/plugins/axios'
|
|
||||||
|
|
||||||
import LoginForm from '@/components/forms/Login.vue'
|
import LoginForm from '@/components/forms/Login.vue'
|
||||||
import RegisterForm from '@/components/forms/Register.vue'
|
import RegisterForm from '@/components/forms/Register.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Home',
|
name: 'Home',
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
dialog: false
|
dialog: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
LoginForm,
|
LoginForm,
|
||||||
RegisterForm
|
RegisterForm
|
||||||
},
|
|
||||||
|
|
||||||
mounted() {
|
|
||||||
if (Cookies.get('session')) {
|
|
||||||
axios
|
|
||||||
.post('/user/login', {
|
|
||||||
session: Cookies.get('session')
|
|
||||||
})
|
|
||||||
.then(response => {
|
|
||||||
if (response.data.success) {
|
|
||||||
this.$router.push({ name: 'about' })
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
Reference in a new issue