Php 使用Laravel passport和Vuejs。Auth::User()不';尽管用户已通过身份验证,但无法在刀片服务器上工作
我正在使用Laravel passport对用户进行身份验证。从我的Vuex商店。我按如下方式发送登录操作:Php 使用Laravel passport和Vuejs。Auth::User()不';尽管用户已通过身份验证,但无法在刀片服务器上工作,php,laravel,vue.js,laravel-passport,Php,Laravel,Vue.js,Laravel Passport,我正在使用Laravel passport对用户进行身份验证。从我的Vuex商店。我按如下方式发送登录操作: login({ commit}, user) { return new Promise((resolve, reject) => { let url = `/auth/login`; let email = user.email; let password = user.password; axios.post(url, {
login({ commit}, user) {
return new Promise((resolve, reject) => {
let url = `/auth/login`;
let email = user.email;
let password = user.password;
axios.post(url, { email, password })
.then(response => {
const token = response.data.token
const user = response.data.user
localStorage.setItem('AnimeStock.jwt', 'Bearer '+ token);
localStorage.setItem('AnimeStock.user', JSON.stringify(user));
axios.defaults.headers.common['Authorization'] = 'Bearer '+ token;
commit('AUTH_SUCCESS', {token, user});
resolve(response);
})
.catch(error => {
console.log(error)
commit('AUTH_ERROR', error.response.data.error)
localStorage.removeItem('AnimeStock.jwt')
localStorage.removeItem('AnimeStock.user')
reject(error)
})
})
}
这是可行的,用户已通过身份验证。接下来,我尝试像这样从我的vue组件中获取用户
api.get(`/auth/user`).then(response => {
console.log(response.data)
});
我的API路线:
Route::group(['prefix' => 'auth'], function () {
//Auth routes
Route::post('login', 'AuthController@login');
Route::post('register', 'AuthController@register');
Route::group(['middleware' => 'auth:api'], function() {
Route::get('logout', 'AuthController@logout');
Route::get('user', 'AuthController@user');
});
});
它点击我的AuthController并返回当前登录的用户
public function user()
{
$user = Auth::user();
return response()->json($user);
}
这工作正常但是当我在布局刀片文件上执行此操作时,它不工作:
<script>
@auth
window.User= {!! json_encode(Auth::user(), true) !!};
@else
window.User= [];
@endauth
</script>
什么“不起作用”?什么路由返回扩展该布局的视图?@lagbox调用Auth::user()在blade上不起作用。它返回null。IIt只在我调用api请求获取它时起作用。这是一个水疗中心,因此没有儿童视图。我正在使用json web令牌作为authwhat“不起作用”?什么路由返回扩展该布局的视图?@lagbox调用Auth::user()在blade上不起作用。它返回null。IIt只在我调用api请求获取它时起作用。这是一个水疗中心,因此没有儿童视图。我使用json web令牌作为身份验证
@php
$user = Auth::user()->id
@endphp