VUE实现登录和登出

新增保存token的帮助类


// 跨域认证信息 header 名
const authorizationKey = 'Authorization'

//获取认证信息
function getAuthorization(token) {
    return sessionStorage.getItem(authorizationKey);
}
//设置认证信息
function setAuthorization(token) {
    sessionStorage.setItem(authorizationKey, token);
}
//清除认证信息
function removeAuthorization(token) {
    sessionStorage.removeItem(authorizationKey);
}

export {
    setAuthorization, removeAuthorization, getAuthorization
}

登录后把服务器的token存在本地

//设置登录信息

 setAuthorization("1111");

退出时候,调用清空Token

removeAuthorization();

路由跳转的时候判断有没有token,没有就去登录页面


//路由前置守卫
router.beforeEach((to, from, next) => {
  if (to.meta.needLogin == false) {
    //不需要登录
    next();
    return;
  }
  //没有token直接去登录页面
  if(getAuthorization()==null){
    next({path: "/login"});
    return;
  }
  next();
});

路由里面设置哪些页面不需要登录

{
      path: "/login",
      name: 'login',
      component: () => import('@/common/login/index'),
      meta: {
        //不需要登录
        needLogin: false
      }
    },

当然这这是前端的验证,后续ajax请求服务的时候,都会把这个token带到后台,通过ajax返回的结果再去判断是否需要退出登录和页面权限判断

实现登录注册功能,你需要在Vue中使用组件来创建表单,使用Vue Router来处理路由和页面导航,以及使用Vuex来管理应用程序状态。 下面是一个简单的示例,演示如何使用Vue实现登录注册功能: 1. 创建注册组件和登录组件 在Vue中,可以使用组件来创建用户界面。为了实现登录注册功能,你需要创建两个组件:一个用于用户注册,另一个用于用户登录。 ``` <template> <div> <h1>注册</h1> <form> <input type="text" placeholder="用户名" v-model="username"> <input type="password" placeholder="密码" v-model="password"> <button type="submit" @click.prevent="register">注册</button> </form> </div> </template> <script> export default { data() { return { username: '', password: '' } }, methods: { register() { // 实现注册逻辑 } } } </script> ``` ``` <template> <div> <h1>登录</h1> <form> <input type="text" placeholder="用户名" v-model="username"> <input type="password" placeholder="密码" v-model="password"> <button type="submit" @click.prevent="login">登录</button> </form> </div> </template> <script> export default { data() { return { username: '', password: '' } }, methods: { login() { // 实现登录逻辑 } } } </script> ``` 2. 创建路由和导航 使用Vue Router来处理路由和页面导航。你需要定义两个路由:一个用于用户注册,另一个用于用户登录。 ``` import Vue from 'vue' import Router from 'vue-router' import Register from '@/components/Register' import Login from '@/components/Login' Vue.use(Router) export default new Router({ routes: [ { path: '/register', name: 'Register', component: Register }, { path: '/login', name: 'Login', component: Login } ] }) ``` 3. 创建Vuex store 使用Vuex来管理应用程序状态。你需要创建一个store,用于存储用户信息和登录状态。 ``` import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ state: { user: null, isLoggedIn: false }, mutations: { setUser(state, user) { state.user = user state.isLoggedIn = true }, clearUser(state) { state.user = null state.isLoggedIn = false } }, actions: { login({ commit }, user) { // 实现登录逻辑 commit('setUser', user) }, logout({ commit }) { // 实现登出逻辑 commit('clearUser') } } }) ``` 4. 在应用程序中使用组件、路由和Vuex store 最后,在应用程序中使用组件、路由和Vuex store来实现完整的登录注册功能。 ``` <template> <div> <h1>我的应用程序</h1> <nav> <router-link to="/register">注册</router-link> <router-link to="/login">登录</router-link> </nav> <router-view></router-view> </div> </template> <script> export default { name: 'App' } </script> ``` 完整的示例代码可以在GitHub上找到:https://github.com/vuejs/vue-router/tree/dev/examples/auth-flow
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值