问题标签 [laravel-sanctum]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
100 浏览

laravel - 部署时 Laravel/VueJs Sanctum CSRF 不匹配

似乎无法弄清楚为什么我不断收到与我部署的应用程序不匹配的 CSRF 令牌。在本地使用代客,它工作正常。

后端和前端位于 2 个不同的服务器上,但它们共享相同的子域,所以这肯定可以吗?

我的本地 .env 包含以下内容:

我的现场 .env 包含以下内容:

API 位于域上:

真的很困惑为什么这不起作用。

0 投票
1 回答
178 浏览

javascript - http_only = false 时不在 document.cookie 列表中的 cookie

我有一个 Nuxt.js 前端应用程序,它执行身份验证请求。后端有一个 Laravel/Sanctum 应用程序。它使用内置的基于 cookie 的会话身份验证。身份验证请求失败,因为/login 请求中提供 X-XSRF-TOKEN HTTP 标头。任何人都可以帮助澄清为什么标题不是从后端提供的cookie创建的吗?

注意:在我的笔记本电脑上一切正常。它仅在部署到测试环境(GCP VM 实例 + Gitlab 页面)时才会失败。

Nuxt.js 中的验证码:

我可以看到 XSRF-TOKEN cookie 是由服务器返回的

我还看到 /login POST 请求中提供了 XSRF-TOKEN cookie,而没有创建 X-XSRF-TOKEN HTTP 标头

Cookie 详细信息

我还调试了 axios 源代码,看到它尝试创建 X-XSRF-TOKEN 标头,从 document.cookie 中获取 XSRF 令牌。但 document.cookie 在那一刻不包含令牌 cookie。为什么?

0 投票
2 回答
1883 浏览

laravel - 即使来自同一个(子)域,Chrome 也不允许 Set-Cookie

这是我的配置:

服务器

Laravel 8 应用程序使用 Sanctum 提供对 REST API 的访问。它被配置为运行在http://b8/

客户

一个单独的 Vue CLI 3.0 SPA,它使用基于会话的 cookie 身份验证方法连接到 API。我已将 Vue CLI Serve 配置为在http://app.b8/.

问题

即使服务器和客户端在同一个域中,Chrome 也不允许 Set-Cookie 操作。翻阅了几篇帖子和文章后,我已经在Postman中成功运行了,但是在浏览器中运行的真正的Vue应用程序无法设置Sanctum cookie,因此无法登录。

这是我的配置:

.env

vue.config.js

Vue应用程序中的登录功能

错误信息

路由的外部调用/sanctum/csrf-cookie成功返回并带来 Sanctum cookie。但是,Chrome 认为 cookie 对当前域无效,因此没有设置它。这是 Sanctum 令牌调用返回后 Dev Tools 窗格的 Cookies 选项卡(显示 Chrome 投诉的工具提示):

在此处输入图像描述

由于未设置 cookie,因此以下login调用失败并出现419错误。

我在这里想念什么?

0 投票
0 回答
1728 浏览

laravel - 圣所注销的正确方法

注销时,我们需要调用以下一项或两项吗?

  1. 正如这里所建议的:

  2. 正如这里建议的那样

0 投票
0 回答
85 浏览

laravel - 带有权限的测试 API Jetstream Sanctum Laravel 8x 的 HEADER 问题

我生成了两个令牌:

我有以下问题

而如果我只打电话

更新执行没有问题。

如何按顺序运行商店然后更新?

看来 $response 继续持有 tokenA 的价值

0 投票
2 回答
2684 浏览

laravel - Nuxt 项目尝试通过 Laravel Sanctum 登录用户时抛出 CSRF 令牌不匹配 419 错误

项目结构:

2个文件夹分别是apiand client,其中 api 用于 laravel 安装,client 指的是 nuxt 项目。

Laravel (v-8.00) 设置:

这就是我在.env会话变量文件中的内容

cors.php包含以下内容

没有进行任何更改sanctum.php,它包含

Nuxt 设置

.env文件包含:

nuxt.config.js包含:

Login.vue

回应

这是我在尝试登录用户时得到的回应:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
993 浏览

javascript - NuxtJs 应用程序在使用 laravel sanctum 登录后返回 401

我正在尝试使用 NuxtJS 构建 PWA,而 Laravel 在 API 的后端。

我使用 Laravel Sanctum 进行 API 身份验证,并且我有 NuxtJS 身份验证模块,我可以登录(我知道这一点,因为它返回并设置所有 cookie)但是当它请求 127.0.0.8000/api/user 身份验证时它返回 401 错误.

这是我的 nuxtjs 配置

这是我的 login.vue

路线/api.php

还有我的 cors.php

0 投票
1 回答
2643 浏览

laravel - 使用 Laravel Sanctum 进行 Magic Link 登录

对于我的项目,我有一组用户只能通过请求 Magic Link 才能登录。所以他们有一个电子邮件地址,但没有密码。为避免安全问题,我的目标是无需在 LocalStorage 中保存身份验证令牌即可使其正常工作。

我尝试使用 Laravel Sanctum 进行以下设置:

  1. 根据要求,我为用户创建一个令牌并将明文版本通过电子邮件发送给他们。
  2. 用户将在查询字符串中打开包含令牌的链接。
  3. 我会将(承载)令牌与授权标头附加在一起。
  4. 下一步(我假设)将调用使用“auth:sanctum”中间件的自定义 /api/login 端点。Bearer 令牌将对用户进行身份验证,然后我将使用Auth::login(). 在此之后,活动会话将用于对用户进行身份验证,从而避免将令牌保存在 localStorage 中。

但是我不能手动调用 Auth::login() 方法而不会出错(BadMethodCallException: Method Illuminate\Auth\RequestGuard::login does not exist.)

我无法弄清楚为什么这不起作用,或者我可能完全错了?

0 投票
1 回答
404 浏览

reactjs - 无法在 Dusk 中使用 sanctum 进行身份验证

我正在尝试使用 Laravel sanctum 和 React 制作登录页面。

我可以在浏览器中登录(可以看到“已验证”消息),但我无法在 Dusk 中登录。

确切地说,我可以在 Dusk 中登录一次,但在下一次访问中我没有经过身份验证

我不明白为什么会这样。

如何使用 sanctum 通过 Dusk 进行身份验证?

环境

  • 拉拉维尔 7.x
  • laravel/圣所^2.6
  • 反应 16.13.1

登录.js

MyCustomLoginController (app/Http/Api/LoginController.php)

验证检查动作

黄昏

设定文件

.env

web (APP_URL) 是 nginx 的容器名称

phpunit.dusk.xml

DuskTestCase.php

0 投票
0 回答
1189 浏览

php - Laravel sanctum 寻找 api_token 列

当我尝试通过 api 令牌获取我的用户时,它返回此错误

但是用户表中没有api_token列,令牌存储在oauth_access_tokens表中,为什么要在users表中查找它们?!

我如何尝试获得我的用户?

代码

kernel

route

任何想法?

更新

更新 2