我尝试在登录后对用户进行身份验证,但它向我显示一个错误,试图获取非对象的属性”照片”。有人帮忙吗?PS:当我尝试登录时,将我重定向到home.blade.php,他不知道用户已通过身份验证
这是loginForm.vue:
<template>
<form>
<div class="form-group">
<label for="exampleInputEmail1">Adresse Email:</label>
<input type="email" class="form-control" v-model="user.email" id="exampleInputEmail1" aria-
describedby="emailHelp">
</div>
<div class="form-group">
<label for="exampleInputPassword1">Mot de passe:</label>
<input type="password" class="form-control" v-model="user.password"
id="exampleInputPassword1">
</div>
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="exampleCheck1">
<label class="form-check-label" for="exampleCheck1">Check me out</label>
</div>
<button type="submit" @click="login" class="btn btn-primary">Submit</button>
</form>
</template>
<script>
export default{
data:()=>({
user:{
email:"",
password:""
}
}),
methods: {
login(){
this.$store.dispatch('currentUser/loginUser',this.user);
}
}
}
</script>
这是currentUser.js:
import axios from "axios";
const state ={
user:{
}
};
const getters= {};
const actions = {
getUser({commit}){
axios.post("api/userauth")
.then(response=>{
commit('setUser',response.data);
});
},
loginUser({},user){
axios.post("/api/login",{
email: user.email,
password: user.password
})
.then(response=>{
console.log(response.data);
if( response.data.acces_token){
//save token mte3na fi locoal storage
localStorage.setItem(
"membre_token",
response.data.acces_token
)
console.log('anis');
window.location.replace('/home');
}
})
}
};
const mutations={
setUser(state,data){
state.user=data;
}
};
export default{
namespaced:true,
state,
getters,
actions,
mutations
}
此AuthenController.php:
public function login(Request $request){
$validation= $this->validate($request,[
'email' =>'required|email',
'password'=>'required',
]);
if(!Auth::attempt($validation)){
return response(['status'=>'error','message'=>'user Undefined']);
}
$accesToken =Auth::user()->createToken('TokenName')->accessToken;
return response(['user'=>Auth::user(), 'acces_token'=>$accesToken]);
}
这是我的home.blade.php中导致错误的部分:
<div class="sidebar">
<!-- Sidebar user panel (optional) -->
<div class="user-panel mt-3 pb-3 mb-3 d-flex">
<div class="image" >
<img src="\img\profile\{{ auth('api')->user()->photo }}" class="img-circle elevation-
2" alt="User Image">
</div>
似乎您的access_token
缺少魔术字Bearer
尝试以下方法
//...
$accesToken = 'Bearer ' . Auth::user()->createToken('TokenName')->accessToken;
//...