Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. import axios from 'axios'
  2. import jwt from 'jsonwebtoken'
  3.  
  4. function checkTokenValidity(token) {
  5. if (token) {
  6. const decodedToken = jwt.decode(token)
  7. return decodedToken && (decodedToken.exp * 1000) > new Date().getTime()
  8.  
  9. }
  10. return false
  11. }
  12. export default {
  13. namespaced: true,
  14. state: {
  15. user: null,
  16. isAuthResolved: false
  17. },
  18. getters: {
  19. authUser(state) {
  20. return state.user
  21. },
  22. isAuthenticated(state) {
  23. return !!state.user
  24. }
  25. },
  26. actions: {
  27. loginWithCredentials({ commit }, userDate) {
  28. return axios.post('/api/v1/users/login', userDate)
  29. .then(res => {
  30. const user = res.data
  31. console.log(user.email)
  32. localStorage.setItem('jwt-token', user.token)
  33. commit('setAuthUser', user)
  34. })
  35. },
  36. registerConsumer(contex, consumerData) {
  37. axios.post('/api/v1/users/consumer', consumerData)
  38. },
  39. logout({ commit }) {
  40. /* axios.post('/api/v1/users/logout')
  41. .then(() => {
  42. commit('setAuthUser', null)
  43. return true
  44. })
  45. .catch(err => console.log(err)) */
  46. return new Promise((resolve, reject) => {
  47. localStorage.removeItem('jwt-token')
  48. commit('setAuthUser', null)
  49. resolved(true)
  50. })
  51.  
  52. },
  53.  
  54. getAuthUser({ commit, getters }) {
  55. const authUser = getters['authUser']
  56. const token = localStorage.getItem('jwt-token')
  57. const isTokenValid = checkTokenValidity(token)
  58. if (authUser && isTokenValid) {
  59. return Promise.resolve(authUser)
  60. }
  61.  
  62. const config = {
  63. headers: {
  64. 'cache-control': 'no-cache',
  65. 'Authorization': token
  66. }
  67. }
  68. return axios('/api/v1/users/me', config)
  69. .then((res) => {
  70. debugger
  71. const user = res.data
  72. localStorage.setItem('jwt-token', user.token)
  73. commit('setAuthUser', user)
  74. commit('setAuthState', true)
  75. return user
  76. })
  77. .catch(err => {
  78. commit('setAuthUser', null)
  79. return undefined
  80. })
  81. }
  82.  
  83. },
  84. mutations: {
  85. setAuthUser(state, user) {
  86. return state.user = user
  87. },
  88. setAuthState(state, authState) {
  89. return state.isAuthResolved = authState
  90. }
  91. }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement