Skip to content

Commit 20c27e0

Browse files
committed
Lesson 3 changes
1 parent fd0af24 commit 20c27e0

File tree

5 files changed

+91
-8
lines changed

5 files changed

+91
-8
lines changed

db/user.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "John Smith",
3-
"email": "john@gmail.com",
2+
"name": "Kate Mary",
3+
"email": "kate@gmail.com",
44
"password": "pass123"
55
}

server.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,15 @@ app.get('/', (req, res) => {
1616
})
1717
})
1818

19-
app.get('/dashboard', (req, res) => {
20-
res.json({
21-
events: events
19+
app.get('/dashboard', verifyToken, (req, res) => {
20+
jwt.verify(req.token, 'the_secret_key', err => {
21+
if (err) {
22+
res.sendStatus(401)
23+
} else {
24+
res.json({
25+
events: events
26+
})
27+
}
2228
})
2329
})
2430

src/router.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import Vue from 'vue'
22
import Router from 'vue-router'
33
import Home from './views/Home.vue'
44
import Dashboard from './views/Dashboard.vue'
5+
import RegisterUser from './views/RegisterUser.vue'
56

67
Vue.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
})

src/store.js

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,29 @@
11
import Vue from 'vue'
22
import Vuex from 'vuex'
3+
import axios from 'axios'
34

45
Vue.use(Vuex)
56

67
export 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
})

src/views/RegisterUser.vue

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
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>

0 commit comments

Comments
 (0)