auth.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. export const state = () => ({
  2. user : null
  3. })
  4. export const getters = {
  5. authUser(state){
  6. return state.user || null
  7. },
  8. isAuthenticated(state){
  9. return !!state.user
  10. },
  11. isAdmin(state){
  12. return state.user && state.user.role && state.user.role === 'admin'
  13. },
  14. }
  15. export const actions = {
  16. async login({commit, state}, loginData) {
  17. try{
  18. console.log('auth.js actions login >', loginData);
  19. console.log('auth.js actions call $axios.$post');
  20. const user = await this.$axios.$post('/api/v1/users/login', loginData)
  21. console.log('auth.js actions call setAuthUser');
  22. commit('setAuthUser', user)
  23. return state.user
  24. }catch(error){
  25. console.log('login error')
  26. // console.error(error)
  27. return error
  28. }
  29. },
  30. async register(_, registerData) {
  31. try{
  32. console.log('auth.js register call await this.$axios.$post(/api/v1/users/register)')
  33. const user = await this.$axios.$post('/api/v1/users/register', registerData)
  34. console.log('auth.js register done await this.$axios.$post(/api/v1/users/register)', user)
  35. return user
  36. }catch(error){
  37. console.log('auth.js register error await this.$axios.$post(/api/v1/users/register)')
  38. // let errorMessage = 'Uuups, something went wrong, try to register again!'
  39. // if(error.response.data.errors) {
  40. // errorMessage = error.response.data.errors.message
  41. // }
  42. return error
  43. }
  44. },
  45. async logout({commit}) {
  46. console.log('auth.js logout call await this.$axios.$post(/api/v1/users/logout)')
  47. try{
  48. const result = await this.$axios.$post('/api/v1/users/logout')
  49. console.log('auth.js logout done await this.$axios.$post(/api/v1/users/logout)', result)
  50. }catch(error){
  51. console.log('auth.js logout error', error)
  52. return error
  53. }
  54. commit('setAuthUser', null)
  55. return true
  56. },
  57. async getAuthUser({commit, getters, state}) {
  58. const authUser = getters.authUser
  59. if (authUser) {
  60. console.log('auth.js actions getAuthUser authUser ', authUser)
  61. return authUser
  62. }
  63. try {
  64. console.log('auth.js getAuthUser call await this.$axios.$get(/api/v1/users/me)')
  65. const user = await this.$axios.$get('/api/v1/users/me')
  66. console.log('auth.js getAuthUser done await this.$axios.$get(/api/v1/users/me) : ', user)
  67. commit('setAuthUser', user)
  68. return state.user
  69. }catch(error){
  70. console.log('auth.js getAuthUser error await this.$axios.$get(/api/v1/users/me) : ')
  71. commit('setAuthUser', null)
  72. return error
  73. }
  74. }
  75. }
  76. export const mutations = {
  77. setAuthUser(state, user) {
  78. state.user = user
  79. console.log('auth.js actions done setAuthUser');
  80. }
  81. }