【发布时间】:2021-08-02 00:45:47
【问题描述】:
我试图检查 vue js 中用户登录的角色,我正在使用 vuex 进行存储,我想检查用户或管理员的角色是否记录了角色 = 1 和角色 = 1 的推送给用户但对我来说 vuex 有问题。我的角色是角色 1 代表管理员,0 代表数据库中的用户登录,我正在使用 laravel 7 进行 API 和 Vue
谁能帮帮我?
store.js
state: {
status: '',
token: localStorage.getItem('token') || '',
user: {},
role: ''
},
mutations: {
auth_request(state){
state.status = 'loading'
},
auth_succes(state, token, user,role){
state.status = 'success'
state.token = token
state.user = user
state.role = role
},
auth_error(state){
state.status = 'error'
},
logout(state){
state.status = ''
state.token = ''
},
},
actions: {
login({commit}, user){
return new Promise((resolve, reject) =>{
commit('auth_request')
axios({url: 'http://127.0.0.1:8000/api/v1/login', data: user, method: 'POST'})
.then(res => {
const token = res.data.token
const user = res.data.user
const role = res.data.role
localStorage.setItem('token', token)
axios.defaults.headers.common['Authorization'] = token
commit('auth_succes', token, user,role)
resolve(res)
})
.catch(err =>{
commit('auth_error')
localStorage.removeItem('token')
reject(err)
})
})
},
register({commit}, user){
return new Promise((resolve, reject) =>{
commit('auth_request')
axios({url: 'http://127.0.0.1:8000/api/m2/signIn', data: user, method: 'POST'})
.then(res => {
const token = res.data.token
const user = res.data.user
localStorage.setItem('token', token)
axios.defaults.headers.common['Authorization'] = token
commit('auth_succes', token, user)
resolve(res)
})
.catch(err =>{
commit('auth_error')
localStorage.removeItem('token')
reject(err)
})
})
}
登录.vue
methods: {
login: function(){
let email = this.email
let password = this.password
if(this.$store.state.role === 1 ){
this.$store.dispatch('login',{email, password})
console.log('Admin logged');
}else{
console.log('User logged');
}
结果显示我是:用户登录
【问题讨论】:
标签: laravel vue.js vue-component vuex