diff --git a/README.md b/README.md index 8c1b9c3..3bd8efa 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,27 @@ For more detail, please visit: > [Vue.js JWT Authentication with Vuex and Vue Router](https://bezkoder.com/jwt-vue-vuex-authentication/) +> [Using Typescript](https://bezkoder.com/vuex-typescript-jwt-auth/) + Fullstack with Spring Boot Back-end: > [Spring Boot + Vue.js: Authentication with JWT & Spring Security Example](https://bezkoder.com/spring-boot-vue-js-authentication-jwt-spring-security/) Fullstack with Node.js Express Back-end: > [Node.js Express + Vue.js: JWT Authentication & Authorization example](https://bezkoder.com/node-express-vue-jwt-auth/) +Fullstack CRUD: +> [Vue.js + Node.js + Express + MySQL example](https://bezkoder.com/vue-js-node-js-express-mysql-crud-example/) + +> [Vue.js + Node.js + Express + PostgreSQL example](https://bezkoder.com/vue-node-express-postgresql/) + +> [Vue.js + Node.js + Express + MongoDB example](https://bezkoder.com/vue-node-express-mongodb-mevn-crud/) + +> [Vue.js + Spring Boot + MySQL/PostgreSQL example](https://bezkoder.com/spring-boot-vue-js-crud-example/) + +> [Vue.js + Spring Boot + MongoDB example](https://bezkoder.com/spring-boot-vue-mongodb/) + +> [Vue.js + Django example](https://bezkoder.com/django-vue-js-rest-framework/) + ## Note: Open `src/services/auth-header.js` and modify `return` statement for appropriate back-end. diff --git a/package-lock.json b/package-lock.json index 81faefb..416804a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2000,12 +2000,18 @@ "dev": true }, "axios": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", - "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", "requires": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" + "follow-redirects": "^1.10.0" + }, + "dependencies": { + "follow-redirects": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", + "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==" + } } }, "babel-code-frame": { @@ -2800,7 +2806,8 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true + "dev": true, + "optional": true }, "coa": { "version": "2.0.2", @@ -3576,6 +3583,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, "requires": { "ms": "2.0.0" } @@ -5091,6 +5099,7 @@ "version": "1.5.10", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dev": true, "requires": { "debug": "=3.1.0" } @@ -5198,7 +5207,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -5219,12 +5229,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5239,17 +5251,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -5366,7 +5381,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -5378,6 +5394,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -5392,6 +5409,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -5399,12 +5417,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -5423,6 +5443,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -5503,7 +5524,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -5515,6 +5537,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -5600,7 +5623,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -5636,6 +5660,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5655,6 +5680,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5698,12 +5724,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -6515,11 +6543,6 @@ "binary-extensions": "^1.0.0" } }, - "is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" - }, "is-callable": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", @@ -7451,7 +7474,8 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, "multicast-dns": { "version": "6.2.3", @@ -9391,7 +9415,8 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true + "dev": true, + "optional": true }, "rx-lite-aggregates": { "version": "4.0.8", diff --git a/package.json b/package.json index e9a75ad..faead98 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "@fortawesome/fontawesome-svg-core": "^1.2.25", "@fortawesome/free-solid-svg-icons": "^5.11.2", "@fortawesome/vue-fontawesome": "^0.1.7", - "axios": "^0.19.0", + "axios": "^0.21.1", "bootstrap": "^4.3.1", "core-js": "^2.6.5", "jquery": "^3.4.1", diff --git a/src/views/BoardAdmin.vue b/src/views/BoardAdmin.vue index 5934071..f067099 100644 --- a/src/views/BoardAdmin.vue +++ b/src/views/BoardAdmin.vue @@ -23,7 +23,7 @@ export default { }, error => { this.content = - (error.response && error.response.data) || + (error.response && error.response.data && error.response.data.message) || error.message || error.toString(); } diff --git a/src/views/BoardModerator.vue b/src/views/BoardModerator.vue index a3a5962..8c58de2 100644 --- a/src/views/BoardModerator.vue +++ b/src/views/BoardModerator.vue @@ -23,7 +23,7 @@ export default { }, error => { this.content = - (error.response && error.response.data) || + (error.response && error.response.data && error.response.data.message) || error.message || error.toString(); } diff --git a/src/views/BoardUser.vue b/src/views/BoardUser.vue index 14eb1d3..4eca0c8 100644 --- a/src/views/BoardUser.vue +++ b/src/views/BoardUser.vue @@ -23,7 +23,7 @@ export default { }, error => { this.content = - (error.response && error.response.data) || + (error.response && error.response.data && error.response.data.message) || error.message || error.toString(); } diff --git a/src/views/Home.vue b/src/views/Home.vue index 4dfd071..da9b2f7 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -23,7 +23,7 @@ export default { }, error => { this.content = - (error.response && error.response.data) || + (error.response && error.response.data && error.response.data.message) || error.message || error.toString(); } diff --git a/src/views/Login.vue b/src/views/Login.vue index c444f68..22b7450 100644 --- a/src/views/Login.vue +++ b/src/views/Login.vue @@ -90,7 +90,7 @@ export default { error => { this.loading = false; this.message = - (error.response && error.response.data) || + (error.response && error.response.data && error.response.data.message) || error.message || error.toString(); } diff --git a/src/views/Register.vue b/src/views/Register.vue index 5db527b..6cc9128 100644 --- a/src/views/Register.vue +++ b/src/views/Register.vue @@ -101,7 +101,7 @@ export default { }, error => { this.message = - (error.response && error.response.data) || + (error.response && error.response.data && error.response.data.message) || error.message || error.toString(); this.successful = false; diff --git a/vue.config.js b/vue.config.js new file mode 100644 index 0000000..a053f60 --- /dev/null +++ b/vue.config.js @@ -0,0 +1,5 @@ +module.exports = { + devServer: { + port: 8081 + } +} \ No newline at end of file