Vue-admin修改登录接口,登录成功后不能 携带实际的admin信息进入首页
发布于 3 年前 作者 chaoren 1882 次浏览 来自 问答
粉丝福利 : 关注VUE中文社区公众号,回复视频领取粉丝福利

一个新手vue在一步一步爬坑,特向各位前辈取取经验 :pensive: 我公司就我一个前端,有了问题只能自己想办法,我也是想了一天解决不了才来问的。哎,心里苦啊
1.是登录已经成功了,但是不能携带实际admin的信息进入首页。
2.已经通过获取登录账户的信息但是不能进入首页
其实就是一个问题。
本来我登录接口已经写成功了,但是登录数据是假的,所以就在改成真的,在这个过程中一直没弄好,翻了很多,也百度了,也一直没找到解决办法

api
export function login(data,sign) {
  return request({
    url: '/admin/login',
    method: 'post',
    headers:{'sign':sign},
    data,
  })
}

export function getInfo(data) {
  return request({
    url: '/admin/admin/info',
    method: 'post',
    data
  })
}

我把关于登录接口和获取信息接口的代码(user.js)贴上,还有根据code返回值做的数据返回
(request.js)。

store/modules/user.js
import Cookies from 'js-cookie'
// 引入sign方法
import signs from '@/utils/util.js'
const state = {
  cookdata: Cookies.get('cookdata'),
  token:getToken(),
}
const mutations = {
  SET_COOKDATA: (state, cookdata) => {
    state.cookdata = cookdata
  },
  SET_TOKEN: (state, token) => {
    state.token = token
  },
}
const actions = {
  // user login
  login({ commit }, userInfo) {
    const {username,pwd,time}=userInfo
    var sign=signs.signFun(userInfo);
    return new Promise((resolve, reject) => {
      login({username:username.trim(),pwd:pwd,time:time},sign).then(response => {
       const data =response.data
        Cookies.set('cookdata',response.data)
        commit('SET_TOKEN', data.token)
        setToken(data.token)
        resolve()
      }).catch(error => {
        reject(error)
      })
    })
  },
  // get user info
  getInfo({ commit, state }) {
    const stateData=JSON.parse(state.cookdata)
    const admin_ids= stateData.admin_id
    const tokens=state.token
    return new Promise((resolve, reject) => {
      getInfo({admin_id:admin_ids,token:tokens}).then(response => {
        // debugger
        const data = response;
        if (!data) {
          reject('验证失败,请重新登录!')
        }
        const { admin_id, username, login_time, token } = data 
        commit('SET_TOKEN', token);
        commit('SET_COOKDATA', data)
        setToken(admin_id)
        resolve(data)
      }).catch(error => { 
        reject(error)
      })
    })
  },


utils/request.js
service.interceptors.response.use(
  /* 如果您想获取诸如头或状态之类的http信息
  *请返回response=>response
  */

  /**
   * 通过自定义代码确定请求状态
  *这里只是一个例子
  *您还可以通过HTTP状态代码判断状态
   */
  response => {
    const res = response.data
    if(res.code===1){
      // 登录成功
      Message({
        message: res.msg,
        type: 'success',
        duration: 3 * 1000
      })
       return res;
    }
    if(res.code===0){
      Message({
        message: res.msg,
        type: 'error',
        duration: 3 * 1000
      })
    }
    // 返回登录信息
    const resData=JSON.parse(Cookies.set('cookdata'));
    return resData
  },
回到顶部