File tree Expand file tree Collapse file tree 3 files changed +80
-3
lines changed
Expand file tree Collapse file tree 3 files changed +80
-3
lines changed Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ import Vue from 'vue'
22import Router from 'vue-router'
33import Home from './views/Home.vue'
44import Dashboard from './views/Dashboard.vue'
5+ import RegisterUser from './views/RegisterUser.vue'
56
67Vue . use ( Router )
78
@@ -18,6 +19,11 @@ const router = new Router({
1819 path : '/dashboard' ,
1920 name : 'dashboard' ,
2021 component : Dashboard
22+ } ,
23+ {
24+ path : '/register' ,
25+ name : 'register' ,
26+ component : RegisterUser
2127 }
2228 ]
2329} )
Original file line number Diff line number Diff line change 11import Vue from 'vue'
22import Vuex from 'vuex'
3+ import axios from 'axios'
34
45Vue . use ( Vuex )
56
67export default new Vuex . Store ( {
7- state : { } ,
8- mutations : { } ,
9- actions : { }
8+ state : {
9+ user : null
10+ } ,
11+ mutations : {
12+ SET_USER_DATA ( state , userData ) {
13+ state . user = userData
14+ localStorage . setItem ( 'user' , JSON . stringify ( userData ) )
15+ axios . defaults . headers . common [ 'Authorization' ] = `Bearer ${
16+ userData . token
17+ } `
18+ }
19+ } ,
20+ actions : {
21+ register ( { commit } , credentials ) {
22+ return axios
23+ . post ( '//localhost:3000/register' , credentials )
24+ . then ( ( { data } ) => {
25+ commit ( 'SET_USER_DATA' , data )
26+ } )
27+ }
28+ }
1029} )
Original file line number Diff line number Diff line change 1+ <template >
2+ <div >
3+ <form @submit.prevent =" register" >
4+ <label for =" name" >
5+ Name:
6+ </label >
7+ <input v-model =" name" type =" text" name =" name" value >
8+
9+ <label for =" email" >
10+ Email:
11+ </label >
12+ <input v-model =" email" type =" email" name =" email" value >
13+
14+ <label for =" password" >
15+ Password:
16+ </label >
17+ <input v-model =" password" type =" password" name =" password" value >
18+
19+ <button type =" submit" name =" button" >
20+ Register
21+ </button >
22+ </form >
23+ </div >
24+ </template >
25+
26+ <script >
27+ export default {
28+ data () {
29+ return {
30+ name: ' ' ,
31+ email: ' ' ,
32+ password: ' '
33+ }
34+ },
35+ methods: {
36+ register () {
37+ this .$store
38+ .dispatch (' register' , {
39+ name: this .name ,
40+ email: this .email ,
41+ password: this .password
42+ })
43+ .then (() => {
44+ this .$router .push ({ name: ' dashboard' })
45+ })
46+ }
47+ }
48+ }
49+ </script >
50+
51+ <style scoped>
52+ </style >
You can’t perform that action at this time.
0 commit comments