[day21]Vue实作-登出及会员功能实作

登出模式及未登入限制读取页面

navbar.vue调整

  • 登出登入的切换调整
    利用v-show来判断是否登入

    • 调整button事件
      包含会员资料页面连结及登入登出连结。
    <b-nav-item  @click="gomenber" >Member-Center</b-nav-item>
    
    <b-button size="sm" class="my-2 my-sm-0"  variant="outline-secondary" v-b-modal.login v-show="isLogin == 'no'" > Login/Register </b-button>  
    
    <b-button size="sm" class="my-2 my-sm-0"  variant="outline-secondary" @click="logout()"  v-show="isLogin == 'yes'"  > Log out </b-button>
    
    • script新增
        <script>
        export default {
          name: 'Navbar',
          props: {
            msg: String
          },
          data(){
            return{
              name:null,
              level:null,
              isLogin:'no', 
            }
          },
          methods:{
            logout(){ 
              sessionStorage.clear()
                  Swal.fire({
                  position: 'top-end',
                  icon: 'info',
                  title: 'you are already logged out',
                  showConfirmButton: false,
                  timer: 1500
                }).then(() => {
                window.location.reload() 
                });
            },
    
            gomenber(){
              let user = sessionStorage.getItem('user-info');
              if (user !== null) {
                this.$router.replace('user');
              } else {
                  Swal.fire({
                  position: 'center',
                  icon: 'warning',
                  title: 'Please Login or Register!',
                  showConfirmButton: false,
                  timer: 2000
                });
              }
            },
          },
          created(){
            let user=sessionStorage.getItem('user-info');
            console.log("created()"); 
            console.log(user); 
              if (user) {
                this.isLogin = 'yes';
              }
              else {
                this.isLogin = 'no';
              }
          } 
        }
        </script>
    

user.vue调整

  • 新增Logout连结
<li>
  <a href="#">
    <i class="fa fa-sign-out-alt"></i>
    <span class="menu-text" @click="logout()">Logout</span>
  </a>
</li> 
  • Logout事件

    • 功能包含登入时呈现会员帐号及登出功能建置
    <script>
    export default {
      name: 'user',
      data(){
        return{
          email:null,
        }
      },
      methods:{
        closeMenu(){
          $(".page-wrapper").toggleClass("toggled");
        },
      logout(){ 
          sessionStorage.clear()
          //点选登出之後来到首页页面
          // .then(() => { 
              this.$router.replace('/'); 
          // })
          // .catch((err) => { 
          //     console.log(err); 
          // });
        },
      },
        created(){
        let user = sessionStorage.getItem('user-info');
        this.email = user.loginId;
    
      }
    }
    </script>
    

画面呈现

  1. 侦测是否有使用者显示登入/登出
    https://ithelp.ithome.com.tw/upload/images/20211006/20140924oBsWB7n590.png
    2.拒绝未登入使用者登入会员页
    https://ithelp.ithome.com.tw/upload/images/20211006/20140924EbpwXBnQDR.png
    3.登出
    https://ithelp.ithome.com.tw/upload/images/20211006/20140924qvV3A7enY4.png

小结

目前简单的登入页面已经简单地完成了!!
接下来应该是到了订单的阶段了
继续加油


<<:  资安设备与产品篇

>>:  Day21-27. Remove Element

30天零负担轻松学会制作APP介面及设计【DAY 12】

大家好,我是YIYI,今天我要来制作HOMEPAGE中MONTH与TODAY的切换以及右下角的加号点...

[Angular] Day27. Validating form input

在前几篇中介绍了 Template-driven forms 和 reactive forms 的用...

Day 02 - 环境安装(中) Docker & MySQL

作业系统建置完成後就可以安装资料库环境,这里的做法是让MySQL 运行在Docker 上,原因只是未...

Day35 ( 电子元件 ) LED 显示温湿度 ( DHT11 )

LED 显示温湿度 ( DHT11 ) 教学原文参考:LED 显示温湿度 ( DHT11 ) 这篇文...

Day13. class_eval & instance_eval - 解答什麽是 MetaClass & Singleton

接下来介绍的章节,会使用到instance_eval, class_eval,加上我们已经在 Day...