12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import { ACCESS_TOKEN } from '@/store/mutation-types'
- import storage from '@/utils/storage'
- import * as LoginApi from '@/api/login'
- import * as UserApi from '@/api/user'
- // 登陆成功后执行
- const loginSuccess = (commit, { token }) => {
- // 过期时间30天
- const expiryTime = 30 * 86400
- // 保存tokne和userId到缓存
- storage.set(ACCESS_TOKEN, token, expiryTime)
- // 记录到store全局变量
- commit('SET_TOKEN', token)
- }
- export const state = {
- // 用户认证token
- token: '',
- // 用户信息
- userInfo: null
- }
- export const mutations = {
- SET_TOKEN: (state, value) => {
- state.token = value
- },
- SET_USER: (state, value) => {
- state.userInfo = value
- },
- }
- export const actions = {
- // 用户登录(普通登录: 输入账号、密码和验证码)
- Login({ commit }, data) {
- return new Promise((resolve, reject) => {
- LoginApi.login(data, { custom: { catch: true } }).then(response => {
- const result = response;
- loginSuccess(commit, result)
- resolve(response)
- }).catch(reject)
- })
- },
- // 用户信息
- Info({ commit, state }) {
- return new Promise((resolve, reject) => {
- if (state.userInfo) {
- return resolve(state.userInfo)
- }
- UserApi.getInfo().then(response => {
- const result = response;
- commit('SET_USER', result)
- resolve(response)
- }).catch(reject)
- })
- },
- // 退出登录
- Logout({ commit }, data) {
- return new Promise((resolve, reject) => {
- LoginApi.logout(data, { custom: { catch: true } }).then(response => {
- storage.remove(ACCESS_TOKEN)
- commit('SET_TOKEN', '')
- resolve(response)
- }).catch(reject)
- })
- }
- }
|