我在使用Laravel 5.3时遇到了抓取当前已认证用户的问题。更具体地说,我正在对我的api.php文件进行HTTP请求,它的路由定义为api/test/create。
控制器代码:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Test;
class TestController extends Controller
{
public function store(Request $request) {
$this->validate($request, [
'test_name' => 'required',
'youtube_id' => 'required',
'is_live_test' => 'required',
]);
//Laravel 5.3 allows to get the user via request
$user = $request->user;
if($user) {
return 'We are logged in';
} else {
return 'We are not logged in';
}
return '';
}
}
每次都返回“我们没有登录”。为了测试这个问题,我在我的blade文件中引用了{{ Auth :: check() }},它返回为“1”。我不太确定控制器为什么无法识别用户已经登录。你有什么想法吗?
我已经尝试了不同的身份验证引用方式,包括导入Facade并使用Auth::check()、Auth::user(),但结果始终相同。
$request->user()
,你需要确保路由使用auth
中间件。 - Derek Pollardapi
中间件应该具有auth:api
。 - Derek Pollardapi
路由时,你需要设置护照:https://laravel.com/docs/5.3/passport - Derek Pollard