Udemy - Nuxt JS with Laravel API - Building SSR Vue JS Apps 笔记13 Nuxt - Middlewares

Middleware Clear Validation

即点击登录,如果错误并出现了错误提示:

批注 2020-05-15 154829

再点击切换其他页面再切换回来的时候,错误提示还存在。所以需要用middleware 在页面切换了之后 clear掉这个validation errors信息。

nuxt-middleware1

新建 middleware/clearValidationErrors.js

export default function ({store}) {
  store.dispatch('validation/clearErrors');
}

在nuxt.config.js中注册这个middleware

批注 2020-05-15 195959

效果:

nuxt-middleware2

Middleware Auth

修改pages/index.vue:

<template>
  <p>Home Page</p>
</template>

<script>
  export default {
    middleware: ['auth'],
  }
</script>

跳转index首页的时候,会检测是否登录,否则会跳转至login page

Middleware Guest

新建middleware/guest.js文件:

export default function ({store, redirect}) {
  if (store.getters['authenticated']) {
    return redirect('/profile');
  }
}

为了便于测试,我们新建一个pages/profile.vue文件

<template>
  <div>
    <h2>User Profile</h2>
  </div>
</template>

<script>
  export default {
    name: "profile"
  }
</script>

<style scoped>

</style>

在login,register页面中应用这个guest中间件。

批注 2020-05-15 201343

批注 2020-05-15 201310

登录成功后,手动打开 http://localhost:3000/login 或register页面 就会跳转  http://localhost:3000/profile 了。

backend修改一下login错误的返回设置,不然页面不会显示提示:

批注 2020-05-15 202118

然后pages/login.vue修改一下跳转的逻辑,登录成功后跳转profile,不成功则返回其原referral page

批注 2020-05-15 202243

pages/register.vue页面也如此:

批注 2020-05-15 202326

还有就是修正一下,pages/index.vue,即使用户不登录应该也可以看index页面的内容,所以注释掉auth中间件

批注 2020-05-15 202440

源码:

https://github.com/dzkjz/laravel-backend-nuxt-frontend-frontpart

选择:

批注 2020-05-15 203306

posted @ 2020-05-15 20:34  dzkjz  阅读(63)  评论(0)    收藏  举报