【发布时间】:2020-07-02 08:41:11
【问题描述】:
我正在使用 Laravel sanctum(以前的 Airlock)并且对此有疑问。我在文档中阅读:
要验证您的 SPA,您的 SPA 的登录页面应首先创建一个 请求 /sanctum/csrf-cookie 路由以初始化 CSRF 应用保护:
axios.get('/sanctum/csrf-cookie').then(response => {
// Login... });
一旦 CSRF 保护被初始化,你应该向典型的 Laravel /login 路由发出 POST 请求。这 /login 路由可能由 laravel/ui 认证提供 脚手架包。
这是否意味着对于我提出的每个请求,我都应该首先检查 cookie 是否已经设置?因为假设我有一个注册用户。在发出 POST 请求注册用户之前,我应该先发出 GET 请求以从我的后端获取 CSRF-Cookie,然后发出 POST 请求来注册用户。
现在用户被重定向到登录网页并被要求登录。那么前端是否必须先检查是否有 CSRF-Cookie,如果没有,是否应该先再次发出 GET 请求来获取 cookie?
这最后一点也让我感到困惑,因为当调用 register 方法时,用户实际上并没有登录,所以用户必须被重定向到登录页面才能使用用户刚刚填写的凭据登录以注册哪个对我来说,这似乎是一种糟糕的用户体验,对吧?
【问题讨论】:
标签: php laravel cookies axios laravel-airlock