基于vue2.x实现的即时通讯程序仿微信聊天5对接logo、ge

2022-10-31  本文已影响0人  风中凌乱的男子
const whiteList = ['/login'] // no redirect whitelist
const api = {
  Login: '/api/login',
  UserInfo: '/api/getInfo',
  UserName: '/user/name'
}

export default api
image.png
image.png
proxy: {
      //配置跨域
      '/api': {
          target: "https://yyds.it98k.cn",
          // ws:true,
          changOrigin:true,
          pathRewrite:{
              '^/api':'/'
          }
      }
}
image.png
import { getToken,setToken,removeToken } from '@/utils/auth';
if (res.code && res.code !== 200) {
      // 登录超时,重新登录
      if (res.code === 401) {
        store.dispatch('FedLogOut').then(() => {
          location.reload()
        })
      }
      return Promise.reject(res || 'error')
}
if (this.username.trim() === '') {
        this.$toast.fail('用户名不能为空')
        return
      }
      if (this.password.trim() === '') {
        this.$toast.fail('密码不能为空')
        return
      }
      this.$store.dispatch('login', {username:this.username,password:this.password}).then(() => {
          this.$router.push({ path: '/' })
      }).catch(err => {
          this.$toast.fail(err.message)
      })
 // user login
  login({ commit }, userInfo) {
    const { username, password } = userInfo
    return new Promise((resolve, reject) => {
      login({ username: username.trim(), password: password }).then(response => {
        commit('SET_TOKEN', response.token)
        setToken(response.token)
        resolve()
      }).catch(error => {
        reject(error)
      })
    })
  },
import { login,getUserInfo } from "@/api/user"
import { getToken,setToken,removeToken } from "@/utils/auth"
const state = {
  userInfo: '',
  token:getToken()
}
const mutations = {
  SET_USER_NAME(state, userInfo) {
    state.userInfo = userInfo
  },
  SET_TOKEN: (state, token) => {
    state.token = token
  },
}
const getters = {
  userInfo: state => state.app.userInfo,
  token: state => state.app.token,
}
export default getters
image.png
image.png
image.png
getUserInfo({ commit, state }) {
    return new Promise((resolve, reject) => {
      getUserInfo().then(response => {
        const { data } = response
        
        if (!data) {
          return reject('Verification failed, please Login again.')
        }

        const { username } = data

        commit('SET_USER_NAME', data)
        resolve(data)
      }).catch(error => {
        reject(error)
      })
    })
  },
const hasGetUserInfo = store.getters.userInfo
image.png
// 登录超时,重新登录
      if (res.code === 401) {
        store.dispatch('FedLogOut').then(() => {
          location.reload()
        })
      }
// remove token
  FedLogOut({ commit }) {
    return new Promise(resolve => {
      removeToken() // must remove  token  first
      resolve()
    })
  }
上一篇 下一篇

猜你喜欢

热点阅读