最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue實現(xiàn)單點登錄控件的完整代碼

 更新時間:2021年11月05日 09:41:17   作者:林恒  
這里提供一個Vue單點登錄的demo給大家參考,對Vue實現(xiàn)單點登錄控件的完整代碼感興趣的朋友跟隨小編一起看看吧

這里提供一個Vue單點登錄的demo給大家參考,希望對想了解的朋友有一些幫助。具體的原理大家可以查看我的上篇文章

vue實現(xiàn)單點登錄的N種方式廢話不多少直接上代碼這里分兩套系統(tǒng),一是登錄系統(tǒng)的主體端,我們所有子系統(tǒng)或者關(guān)聯(lián)系統(tǒng)的登錄流程,全部在這里完成

具體代碼如下:login.vue

<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
    <button @click="handleLogin">點擊登錄</button>
    <button @click="rethome">返回之前頁面</button>
  </div>
</template>
 
<script>
import Cookies from 'js-cookie'
export default {
  name: 'home',
  data () {
    return {
      msg: '系統(tǒng)一:統(tǒng)一登錄頁面',
    }
  },
  mounted(){
    const token = Cookies.get('app.token');
    if(token){
      this.rethome();
    }
  },
  methods: {
        handleLogin() {
        var token = this.randomString();
        Cookies.set('app.token',token, { expires: 1000, path: '/',domain: '.xxx,com' })//寫上你的網(wǎng)站主域名
        if(Cookies.get('app.returl')){
          Cookies.set('app.loginname','系統(tǒng)二', { expires: 1000, path: '/',domain: '.xxx,com' })//寫上你的網(wǎng)站主域名
        }else{
          Cookies.set('app.loginname','系統(tǒng)一', { expires: 1000, path: '/',domain: '.xxx,com' })//寫上你的網(wǎng)站主域名
        }
        this.rethome();
    },
    rethome(){
      var returl = Cookies.get('app.returl');
        if(returl){
          Cookies.set('app.returl','', { expires: 1000, path: '/',domain: '.xxx,com' })//寫上你的網(wǎng)站主域名
           window.open(returl,"_parent");
        }else{
          this.$router.push("/");
        }
    },
    randomString(e) {
        e = e || 32;
        var t = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678",
        a = t.length,
        n = "";
        for (var i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a));
        return n
    }
    }
}
</script>
 
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
  font-weight: normal;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>

home.vue

<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
    <h3>用戶信息為:{{token}}</h3>
    <h3>登錄地點:{{loginname}}</h3>
    <button @click="logout">登出</button>
  </div>
</template>
 
<script>
import Cookies from 'js-cookie'
 
export default {
  name: 'home',
  data () {
    return {
      msg: '系統(tǒng)一主頁面',
      token:'',
      loginname:''
    }
  },
  mounted(){
    const token = Cookies.get('app.token');
    this.token = token;
    const loginname = Cookies.get('app.loginname');
    this.loginname = loginname;
    console.log(token);
    if(!token){
      this.$router.push("/login");
    }else{
      this.rethome()
    }
  },
  methods: {
    logout(){
        Cookies.set('app.token','', { expires: 1000, path: '/',domain: '.xxx,com' })//寫上你的網(wǎng)站主域名
        Cookies.set('app.loginname','', { expires: 1000, path: '/',domain: '.xxx,com' })//寫上你的網(wǎng)站主域名
        this.$router.go(0)
    },
    rethome(){
      var returl = Cookies.get('app.returl');
        if(returl){
          Cookies.set('app.returl','', { expires: 1000, path: '/',domain: '.xxx,com' })//寫上你的網(wǎng)站主域名
          window.open(returl,"_parent");
        }else{
        }
    },
  }
}
</script>
 
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
  font-weight: normal;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>

登錄系統(tǒng)完成后,我們的步驟已經(jīng)完成一半,接下來是調(diào)用端的組件制造及調(diào)用方法,這里給大家展示我的案例控件代碼

<template>
  <div class="hello" v-show="false">
  </div>
</template>
 
<script>
import Cookies from 'js-cookie'
export default {
  props:{
        type:{
            type:String,
            default:'getdata'
    }
  },
  name: 'home',
  data () {
    return {
      token:'',
      loginname:''
    }
  },
  mounted(){
    const token = Cookies.get('app.token');
    this.token = token?token:'未登陸';
    const loginname = Cookies.get('app.loginname');
    this.loginname = loginname?loginname:'未登陸';
    this.returnFun()
  },
  methods: {
        returnFun(){
      var data = {
        token:this.token,
        loginname:this.loginname
      }
      this.$emit("clickFun",data);
    }
  },
  watch: {
      'type': function (val) {
        const token = Cookies.get('app.token');
        this.token = token?token:'未登陸';
        const loginname = Cookies.get('app.loginname');
        this.loginname = loginname?loginname:'未登陸';
        switch(val){
          case 'login':
          console.log(token);
          if(token !=''){
            this.returnFun();
          }else{
            Cookies.set('app.returl','本地路由', { expires: 1000, path: '/',domain: '.xxx,com' })//寫上你的網(wǎng)站主域名
            window.open('登陸系統(tǒng)地址',"_parent");
          }
          break;
          case 'logout':
          Cookies.set('app.token','', { expires: 1000, path: '/',domain: '.xxx,com' })//寫上你的網(wǎng)站主域名
          Cookies.set('app.loginname','', { expires: 1000, path: '/',domain: '.xxx,com' })//寫上你的網(wǎng)站主域名;
          this.token = '未登陸';
          this.loginname ='未登陸';
          this.returnFun();
          break;
          case 'getdata':
          this.returnFun();
          break;
        }
      }
  }
}
</script>
 
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
  font-weight: normal;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>

調(diào)用端代碼案例如下:

<template>
  <div class="hello">
    <login @clickFun="returnFun" :type ="type"></login>
    <h1>{{ msg }}</h1>
    <h3>用戶信息為:{{token}}</h3>
    <h3>登錄地點:{{loginname}}</h3>
    <button @click="login">登陸</button>
    <button @click="logout">登出</button>
  </div>
</template>
 
<script>
import Cookies from 'js-cookie'
import login from '@/pages/login'
 
export default {
  name: 'home',
  data () {
    return {
      msg: '系統(tǒng)二:父組件頁面',
      token:'未登陸',
      loginname:'未登陸',
      type:'getdata',
    }
  },
  mounted(){
  },
  methods: {
    login(){
      this.type = "login";
    },
    logout(){
      this.type = "logout";
    },
    returnFun(value){
        console.log(value,"子組件返回值")
                const token = value.token;
        this.token = token?token:'未登陸';
        const loginname = value.loginname;
        this.loginname = loginname?loginname:'未登陸';
        }
  },
  components:{
            login
    }
}
</script>
 
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
  font-weight: normal;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>

到這里,一個簡易單點登錄系統(tǒng)的搭建已經(jīng)完成,大家可以照著這個思路,繼續(xù)完善最終制作成對應(yīng)的控件。如果對您有所幫助,歡迎您點個關(guān)注,我會定時更新技術(shù)文檔,大家一起討論學(xué)習(xí),一起進步。

到此這篇關(guān)于Vue單點登錄控件代碼分享 的文章就介紹到這了,更多相關(guān)Vue單點登錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3菜單展開和收起實現(xiàn)

    Vue3菜單展開和收起實現(xiàn)

    在Vue項目中實現(xiàn)首頁布局,包括可收放的左側(cè)菜單和主體內(nèi)容區(qū),在store中管理菜單狀態(tài),通過修改isCollapse狀態(tài)控制菜單的展開與收起,在home.vue中編寫左側(cè)菜單欄的代碼和樣式,實現(xiàn)一個響應(yīng)式的用戶界面
    2024-09-09
  • vue中echarts點擊事件點擊一次多次觸發(fā)問題

    vue中echarts點擊事件點擊一次多次觸發(fā)問題

    這篇文章主要介紹了vue中echarts點擊事件點擊一次多次觸發(fā)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Vue使用pages構(gòu)建多頁應(yīng)用的實現(xiàn)步驟

    Vue使用pages構(gòu)建多頁應(yīng)用的實現(xiàn)步驟

    在大部分實際場景中,我們都可以構(gòu)建單頁應(yīng)用來進行項目的開發(fā)和迭代,然而對于項目復(fù)雜度過高或者頁面模塊之間差異化較大的項目,我們可以選擇構(gòu)建多頁應(yīng)用來實現(xiàn),那么什么是多頁應(yīng)用,本文就給大家介紹了Vue使用pages構(gòu)建多頁應(yīng)用的實現(xiàn)步驟
    2024-12-12
  • vue學(xué)習(xí)筆記之指令v-text && v-html && v-bind詳解

    vue學(xué)習(xí)筆記之指令v-text && v-html && v-bind詳解

    這篇文章主要介紹了vue學(xué)習(xí)筆記之指令v-text && v-html && v-bind詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 詳解Vue-cli代理解決跨域問題

    詳解Vue-cli代理解決跨域問題

    本篇文章主要介紹了Vue-cli代理解決跨域問題,詳細的介紹了Vue如何設(shè)置代理,具有一定參考價值,有興趣的可以了解一下
    2017-09-09
  • vue-cli3打包時圖片壓縮處理方式

    vue-cli3打包時圖片壓縮處理方式

    這篇文章主要介紹了vue-cli3打包時圖片壓縮處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • VUE項目中封裝Echart折線圖的方法

    VUE項目中封裝Echart折線圖的方法

    這篇文章主要為大家詳細介紹了VUE項目中封裝Echart折線圖的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 解決vue項目打包上服務(wù)器顯示404錯誤,本地沒出錯的問題

    解決vue項目打包上服務(wù)器顯示404錯誤,本地沒出錯的問題

    這篇文章主要介紹了解決vue項目打包上服務(wù)器顯示404錯誤,本地沒出錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • vue.js編譯時給生成的文件增加版本號

    vue.js編譯時給生成的文件增加版本號

    這篇文章主要介紹了vue.js編譯時給生成的文件增加版本號,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • vue生成token并保存到本地存儲中

    vue生成token并保存到本地存儲中

    這篇文章主要介紹了vue生成token并保存到本地存儲中,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07

最新評論

常州市| 宁都县| 杨浦区| 四川省| 遂平县| 松溪县| 新源县| 疏附县| 嵊泗县| 昌吉市| 西林县| 开原市| 英德市| 焉耆| 凤阳县| 抚宁县| 黄石市| 绥德县| 嘉祥县| 银川市| 新巴尔虎左旗| 雷波县| 谢通门县| 巩义市| 甘洛县| 罗田县| 昭通市| 乌鲁木齐县| 陇南市| 神木县| 揭阳市| 保山市| 天津市| 文水县| 右玉县| 麦盖提县| 荣成市| 青岛市| 嫩江县| 衡阳市| 敦化市|