vue 登录直接跳转首页

目录

 

 

目录

one

首先在登录页面longin操作

创建utils.js

main.js中引用

         store中user.js 

two  



one

首先在登录页面longin操作

在if中判断你返回的值是多少

handleLogin() {
this.loading = true
      this.$store
        .dispatch('user/login', this.loginForm)
        .then((res) => {
          //判断您返回的值是什么
          if (res.code != 200) {
            this.$message.error('请输入正确账号密码')
          } else {
            this.$router.replace({ path: this.redirect || '/' })
          }
          this.loading = false
        })
        .catch(() => {
          this.loading = false
        })
}         
  created() {
    let Base64 = require('js-base64').Base64
    let channel = Base64.decode(this.$utils.getUrlKey('verinfo')).split(',')
    if (channel != undefined) {
      ;(this.loginForm.username = channel[0]),
        (this.loginForm.password = channel[1])
      this.handleLogin()
    }
  },

创建utils.js

export default {
    getUrlKey: function (name) {
        return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ""])[1].replace(/\+/g, '%20')) || null;
    }
}
/// 解密
// export function Decrypt(str) {
//     // let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
//     // let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
//     let decrypt = CryptoJS.AES.decrypt(str, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
//     let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
//     return decryptedStr.toString();
// }
// /// 加密
// export function AES_CBC_encrypt(word) {
//     let srcs = CryptoJS.enc.Utf8.parse(word);
//     let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
//     return encrypted.ciphertext.toString().toUpperCase();
// }

main.js中引用

import utils   from './utils'

Vue.prototype.$utils=utils

store中user.js 

store中user.js 的  const {data} = response  加不加这{}取决于您登陆验证 其次是在  resolve(data) 加上返回的data

如果没有返回token  可以用下面这张写法      

 const  data  = response  下的if判断逻辑根据您的需求来写   例如:

      if(data.data){
          commit('SET_TOKEN', data.token)
          setToken(data.token)
        }

或者 

http://链接地址ip:端口/#/login?verinfo=base64加密后的账号,密码

base64加密后的账号,密码为:[账号,密码]   账号和密码中间用,【逗号】隔开

例如:YWRtaW4sMTIzMTIz   是  admin,123123          base64加密后的账号,密码则为         YWRtaW4sMTIzMTIz

two  

handleLogin() {
      // this.$refs.loginForm.validate((valid) => {
      //   if (valid) {
      //     this.loading = true;
      //     this.$store
      //       .dispatch("user/login", this.loginForm)
      //       .then((res) => {
      //         if (res.code != 200) {
      //           this.$message.error("请输入正确账号密码");
      //         } else {
      //           this.$router.replace({ path: this.redirect || "/" });
      //         }
      //         this.loading = false;
      //       })
      //       .catch(() => {
      //         this.loading = false;
      //       });
      //   } else {
      //     // console.log('error submit!!')
      //     return false;
      //   }
      // });

         this.loading = true
      this.$store
        .dispatch('user/login', this.loginForm)
        .then((res) => {
          if (res.code != 200) {
            this.$message.error('请输入正确账号密码')
          } else {
            this.$router.replace({ path: this.redirect || '/' })
          }
          this.loading = false
        })
        .catch(() => {
          this.loading = false
        })
    },

 

  created() {
    let channel = decodeURIComponent(
      (new RegExp("[?|&]" + "verinfo" + "=" + "([^&;]+?)(&|#|;|$)").exec(
        location.href
      ) || [, ""])[1].replace(/\+/g, "%20")
    ).split(",");
    if (channel != undefined && channel.length > 1) {
      (this.loginForm.username = channel[0]),
        (this.loginForm.password = channel[1]);
      console.log(this.loginForm.username);
      console.log(this.loginForm.password);
      this.handleLogin();
    }
  },

http://链接地址ip:端口/#/login?verinfo=账号,密码

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Vue 3 中,你可以使用 Vue Router 来实现登录跳转到主页的功能。下面是一个简单的示例: 首先,确保你已经安装了 Vue Router,可以使用以下命令行安装: ``` npm install vue-router ``` 接下来,在你的项目中创建一个名为 `router.js` 的文件,并添加以下代码: ```javascript import { createRouter, createWebHistory } from 'vue-router' import Home from './views/Home.vue' import Login from './views/Login.vue' const routes = [ { path: '/', name: 'Home', component: Home, meta: { requiresAuth: true // 添加一个标记,表示需要登录后才能访问的路由 } }, { path: '/login', name: 'Login', component: Login } ] const router = createRouter({ history: createWebHistory(), routes }) // 添加导航守卫 router.beforeEach((to, from, next) => { const loggedIn = localStorage.getItem('loggedIn') // 假设你使用 localStorage 来保存登录状态 if (to.matched.some(record => record.meta.requiresAuth) && !loggedIn) { // 如果需要登录且未登录,则重定向到登录页面 next('/login') } else { next() } }) export default router ``` 在上面的代码中,我们定义了两个路由,一个是主页的路由 `/`,另一个是登录页面的路由 `/login`。其中,主页的路由添加了一个 `meta` 属性,用来标记需要登录后才能访问。 在 `router.beforeEach` 中,我们使用导航守卫来检查用户是否已登录。如果用户访问需要登录的路由但未登录,则会被重定向到登录页面。 接下来,在你的应用程序的入口文件(通常是 `main.js`)中引入 `router.js` 并将其应用于 Vue 实例: ```javascript import { createApp } from 'vue' import App from './App.vue' import router from './router' createApp(App).use(router).mount('#app') ``` 现在,你可以在需要登录的组件中使用 `<router-link>` 来跳转到主页,例如: ```html <template> <div> <h1>主页</h1> <p>欢迎登录!</p> </div> </template> <script> export default { name: 'Home', // ... } </script> ``` 在其他地方,你可以使用 `$router.push()` 方法来编程式地跳转到主页: ```javascript // 在登录成功后调用 this.$router.push('/') ``` 这样,当用户登录成功后,就会自动跳转到主页。如果用户未登录或尝试直接访问主页,则会被重定向到登录页面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花归去

客官赏点吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值