Kevin Conklin
Kevin Conklin

Reputation: 201

How to save users sessions with VueJS?

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

Answers (2)

Pengguna
Pengguna

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

Justin MacArthur
Justin MacArthur

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

Related Questions