user.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { HTTP } from 'vuejs/rest/http-axios'
  2. import qs from 'querystring'
  3. export default {
  4. namespaced: true,
  5. // initial state
  6. state : {
  7. uid:null,
  8. // username: '',
  9. mail:'',
  10. token: null,
  11. logout_token: null
  12. // isloggedin: false
  13. },
  14. // getters
  15. getters : {},
  16. // mutations
  17. mutations : {
  18. setUser (state, data) {
  19. state.uid = data.current_user.uid
  20. // state.username = data.username
  21. state.mail = data.current_user.mail
  22. state.token = data.csrf_token
  23. state.logout_token = data.logout_token
  24. },
  25. setLoggedOut (state) {
  26. state.uid= null
  27. state.mail = ''
  28. state.token = null
  29. state.logout_token = null
  30. }
  31. },
  32. // actions
  33. actions : {
  34. getToken ({ commit, state }, credentials) {
  35. HTTP.post('/user/login?_format=json', credentials)
  36. .then(({ data }) => {
  37. console.log('data', data)
  38. commit('setUser', data)
  39. })
  40. .catch(( error ) => {
  41. console.log('Issue with login', error)
  42. Promise.reject(error)
  43. })
  44. },
  45. userLogout ({ commit, state }) {
  46. let credentials = qs.stringify({
  47. token: state.token
  48. })
  49. HTTP.post('/user/logout', credentials)
  50. .then((resp) => {
  51. console.log('resp', resp)
  52. commit('setLoggedOut')
  53. })
  54. .catch(( error ) => {
  55. console.log('Issue with logout', error)
  56. Promise.reject(error)
  57. })
  58. }
  59. }
  60. }