Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. import Vue from 'vue';
  2. import Vuex from 'vuex';
  3. import VueResource from 'vue-resource';
  4. import router from '../router/index'
  5. Vue.use(Vuex);
  6.  
  7. const LOGIN = "LOGIN";
  8. const LOGIN_SUCCESS = "LOGIN_SUCCESS";
  9. const LOGOUT = "LOGOUT";
  10. const LOADING = "LOADING";
  11. const LOADED = "LOADED";
  12.  
  13. export const store = new Vuex.Store({
  14. state: {
  15. isLoggedIn: !!localStorage.getItem("token"),
  16. loading: false
  17. },
  18. mutations: {
  19. [LOADING] (state) {
  20. state.loading = true;
  21. },
  22. [LOADED] (state) {
  23. state.loading = false;
  24. },
  25. [LOGIN] (state) {
  26. state.loading = true;
  27. },
  28. [LOGIN_SUCCESS] (state) {
  29. state.isLoggedIn = true;
  30. state.loading = false;
  31. },
  32. [LOGOUT](state) {
  33. state.isLoggedIn = false;
  34. }
  35. },
  36. actions: {
  37. login({ commit }, creds) {
  38. commit(LOGIN); // show spinner
  39. Vue.http.post('http://localhost:58181/token', `grant_type=password&username=${creds.email}&password=${creds.password}`,{
  40. headers: {
  41. 'Content-Type': 'multipart/form-data',
  42. }
  43. })
  44. .then((response) => response.json())
  45. .then((result) => {
  46. localStorage.setItem('token', result.access_token);
  47. commit(LOGIN_SUCCESS);
  48. router.push({path: '/'});
  49. })
  50. .catch(error => alert("Login error"));
  51. },
  52. logout({ commit }) {
  53. localStorage.removeItem("token");
  54. router.push({path: '/login'});
  55. commit(LOGOUT);
  56. }
  57. },
  58. getters: {
  59. isLoggedIn: state => {
  60. return state.isLoggedIn
  61. },
  62. loading: state => {
  63. return state.loading
  64. }
  65. }
  66. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement