我正在尝试使用Laravel / Passport作为API后端创建单页应用。要注册,我像往常一样创建我的用户,然后使用Passport的ApiTokenCookieFactory生成我的JWT cookie,如下所示:
// api_success is a response macro
return $this->response->api_success('User successfully created')
->withCookie($this->cookie->make($newUser->getModel()->getKey(), $request->header('X-CSRF-TOKEN')));
您可以假设$ this-> Cookie是容器已解析的Cookie工厂。这一切都很好,我得到了一个与JWT的laravel_token cookie。
当我去提出请求时,例如api / users / me,我得到了这样的答复:
{
"error": "Unauthenticated."
}
我正在发送CSRF令牌,我正在将X-Requested-With设置为XMLHttpRequest,并且cookie正在与请求一起发送。
/ api / users / me路由有api:auth中间件,所以我不知道我做错了什么。如果有人有任何建议,他们将非常感谢< 3
答案 0 :(得分:0)
我已经解决了我遇到的问题,如果有人将来到这里,请注意默认情况下不加密cookie!确保将加密cookie中间件添加到您的路由,或手动加密cookie。我的上帝,当我想到这一点时,我很高兴。事实证明护照警卫试图解密我未加密的cookie并默默地(!!)失败。