diff --git a/CHANGELOG.md b/CHANGELOG.md index 3534546..0c85932 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### 🚀 Features - Add support for WordPress templates [#6](https://github.com/hex-digital/nuxtpress/issues/6) +- Add example login page and integrate auth store with WP API client [#7](https://github.com/hex-digital/nuxtpress/issues/7) ## [0.0.2] - 2020-02-15 diff --git a/docker-compose.yml b/docker-compose.yml index 047ab92..192b1cc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -38,6 +38,7 @@ services: WORDPRESS_DEBUG: ${NUXTPRESS_WP_DEBUG:-1} WORDPRESS_CONFIG_EXTRA: | define( 'WP_HEADLESS_URL', '${NUXTPRESS_URL_FRONTEND:-http://localhost:3000}' ); + define( 'JWT_AUTH_SECRET_KEY', '${NUXTPRESS_WP_JWT_SECRET:-k4e8QlKsniiCbm7e49HEhQTsa4z11Uev}'); define( 'WP_SITEURL', 'http://localhost:${NUXTPRESS_WP_PORT:-3080}' ); define( 'WP_HOME', 'http://localhost:${NUXTPRESS_WP_PORT:-3080}' ); diff --git a/nuxt/nuxt.config.js b/nuxt/nuxt.config.js index 862a7bb..168d352 100644 --- a/nuxt/nuxt.config.js +++ b/nuxt/nuxt.config.js @@ -63,6 +63,8 @@ export default { modules: [ // Doc: https://axios.nuxtjs.org/usage '@nuxtjs/axios', + // Doc: https://auth.nuxtjs.org/guide + '@nuxtjs/auth', // '@nuxtjs/pwa', '~/modules/static/', [ @@ -77,6 +79,20 @@ export default { ** See https://axios.nuxtjs.org/options */ axios: {}, + /* + ** Auth configuration + ** See https://auth.nuxtjs.org/schemes/local.html + */ + auth: { + strategies: { + local: { + endpoints: { + login: { url: `${wpUrl}/wp-json/jwt-auth/v1/token`, method: 'post', propertyName: 'token' }, + user: { url: `${wpUrl}/wp-json/wp/v2/users/me`, method: 'get', propertyName: false }, + }, + }, + }, + }, /* ** Build configuration */ diff --git a/nuxt/package.json b/nuxt/package.json index 8d7d4ae..27bf073 100644 --- a/nuxt/package.json +++ b/nuxt/package.json @@ -28,7 +28,8 @@ } }, "dependencies": { - "@nuxtjs/axios": "^5.3.6", + "@nuxtjs/auth": "^4.8.5", + "@nuxtjs/axios": "^5.9.5", "@nuxtjs/dotenv": "^1.4.1", "@nuxtjs/pwa": "^3.0.0-0", "@nuxtjs/style-resources": "^1.0.0", diff --git a/nuxt/pages/login.vue b/nuxt/pages/login.vue new file mode 100644 index 0000000..7f0f5b4 --- /dev/null +++ b/nuxt/pages/login.vue @@ -0,0 +1,23 @@ + + + diff --git a/nuxt/yarn.lock b/nuxt/yarn.lock index 91ec2f1..78004d7 100644 --- a/nuxt/yarn.lock +++ b/nuxt/yarn.lock @@ -1348,7 +1348,21 @@ webpack-node-externals "^1.7.2" webpackbar "^4.0.0" -"@nuxtjs/axios@^5.3.6": +"@nuxtjs/auth@^4.8.5": + version "4.8.5" + resolved "https://registry.yarnpkg.com/@nuxtjs/auth/-/auth-4.8.5.tgz#5d8a2ce2965c0b9feded5410c262b51788f97eee" + integrity sha512-GqRKj+hrQhz1M4rjMyIiOcwJQBi79wlYshw26Uz79ASgTBupQjRFQVgB/nj6crdOGVVTZLQqOjALvdVmr9rqOg== + dependencies: + "@nuxtjs/axios" "^5.9.0" + body-parser "^1.19.0" + consola "^2.11.2" + cookie "^0.4.0" + is-https "^1.0.0" + js-cookie "^2.2.1" + lodash "^4.17.15" + nanoid "^2.1.8" + +"@nuxtjs/axios@^5.9.0", "@nuxtjs/axios@^5.9.5": version "5.9.5" resolved "https://registry.yarnpkg.com/@nuxtjs/axios/-/axios-5.9.5.tgz#5adc0acc4deb7e1d67ab7240c741a401a6c01823" integrity sha512-5sMsl5PbNSbAOou75wN2ztDAfGi6pU12zZQvfkDBz3s9KnKST/Azfc1FLw2Y8TR4UaDv074vt20oxK+z7AnH1A== @@ -3220,7 +3234,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -body-parser@1.19.0: +body-parser@1.19.0, body-parser@^1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== @@ -4051,7 +4065,7 @@ connect@^3.7.0: parseurl "~1.3.3" utils-merge "1.0.1" -consola@^2.10.0, consola@^2.10.1, consola@^2.11.1, consola@^2.11.3, consola@^2.4.0, consola@^2.5.6, consola@^2.6.0, consola@^2.9.0: +consola@^2.10.0, consola@^2.10.1, consola@^2.11.1, consola@^2.11.2, consola@^2.11.3, consola@^2.4.0, consola@^2.5.6, consola@^2.6.0, consola@^2.9.0: version "2.11.3" resolved "https://registry.yarnpkg.com/consola/-/consola-2.11.3.tgz#f7315836224c143ac5094b47fd4c816c2cd1560e" integrity sha512-aoW0YIIAmeftGR8GSpw6CGQluNdkWMWh3yEFjH/hmynTYnMtibXszii3lxCXmk8YxJtI3FAK5aTiquA5VH68Gw== @@ -4107,7 +4121,7 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.4.0: +cookie@0.4.0, cookie@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== @@ -7271,6 +7285,11 @@ is-hexadecimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== +is-https@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-https/-/is-https-1.0.0.tgz#9c1dde000dc7e7288edb983bef379e498e7cb1bf" + integrity sha512-1adLLwZT9XEXjzhQhZxd75uxf0l+xI9uTSFaZeSESjL3E1eXSPpO+u5RcgqtzeZ1KCaNvtEwZSTO2P4U5erVqQ== + is-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.1.tgz#520dafc4307bb8ebc33b813de5ce7c9400d644a1" @@ -7954,6 +7973,11 @@ js-beautify@^1.6.12: mkdirp "~0.5.1" nopt "~4.0.1" +js-cookie@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" + integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -8987,6 +9011,11 @@ nan@^2.12.1, nan@^2.13.2: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== +nanoid@^2.1.8: + version "2.1.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" + integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"