Reputation: 201
I am trying to figure out how to save users session when they log out. e.g. multiple shopping carts, transactions, and even previous searches. I am pretty new to the whole backend language and I am just seeking guidance on the matter. I have tried my share at google-foo for this matter, but have not found any good documentation on what I am trying to achieve.
Can anyone help and/or guide me?
Upvotes: 19
Views: 62624
Reputation: 4941
try use vue-session
example in login area:
export default {
name: 'login',
methods: {
login: function () {
this.$http.post('http://somehost/user/login', {
password: this.password,
email: this.email
}).then(function (response) {
if (response.status === 200 && 'token' in response.body) {
this.$session.start()
this.$session.set('jwt', response.body.token)
Vue.http.headers.common['Authorization'] = 'Bearer ' + response.body.token
this.$router.push('/panel/search')
}
}, function (err) {
console.log('err', err)
})
}
}
}
logged in area:
export default {
name: 'panel',
data () {
return { }
},
beforeCreate: function () {
if (!this.$session.exists()) {
this.$router.push('/')
}
},
methods: {
logout: function () {
this.$session.destroy()
this.$router.push('/')
}
}
}
Upvotes: 27
Reputation: 4050
You need to either store the session in a cookie or on the server.
vue-cookie would be a good component to use for browser storage.
if you're storing on the server you need to create an endpoint for the data and store it in some fashion; a database, cache file, redis, etc.
Upvotes: 7