我已经使用护照包在Laravel
中创建了一个API身份验证系统。现在,我想在网站中使用它,我已经将access_token
保存在浏览器cookie
中,并使用中间件为受保护的access_token
在请求标头中添加了API endpoints
。但它不起作用。
这是我的API登录方法吗?
public function login()
{
if(Auth::attempt(['email' => request('email'), 'password' => request('password')])){
$user = Auth::user();
$token = $user->createToken('Personal Access Token')-> accessToken;
return response($token,200)->cookie('access_token',$token,10);
}
else{
return response()->json(['error'=>'Unauthorised'], 401);
}
}
这是我的令牌中间件-
use Cookie;
public function handle($request, Closure $next)
{
$response = $next($request);
$token=Cookie::get('access_token');
$response->header('Authorization','Bearer '.$token);
$response->header('Accept','application/json');
return $response;
}
以及我要访问的受保护的路由。
Route::middleware(['auth:api','api.token'])->get('/user', function (Request $request) {
return $request->user();
});