问题标签 [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.
laravel - 部署时 Laravel/VueJs Sanctum CSRF 不匹配
似乎无法弄清楚为什么我不断收到与我部署的应用程序不匹配的 CSRF 令牌。在本地使用代客,它工作正常。
后端和前端位于 2 个不同的服务器上,但它们共享相同的子域,所以这肯定可以吗?
我的本地 .env 包含以下内容:
我的现场 .env 包含以下内容:
API 位于域上:
真的很困惑为什么这不起作用。
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 标头
我还调试了 axios 源代码,看到它尝试创建 X-XSRF-TOKEN 标头,从 document.cookie 中获取 XSRF 令牌。但 document.cookie 在那一刻不包含令牌 cookie。为什么?
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
错误。
我在这里想念什么?
laravel - 带有权限的测试 API Jetstream Sanctum Laravel 8x 的 HEADER 问题
我生成了两个令牌:
我有以下问题
而如果我只打电话
更新执行没有问题。
如何按顺序运行商店然后更新?
看来 $response 继续持有 tokenA 的价值
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
laravel - 使用 Laravel Sanctum 进行 Magic Link 登录
对于我的项目,我有一组用户只能通过请求 Magic Link 才能登录。所以他们有一个电子邮件地址,但没有密码。为避免安全问题,我的目标是无需在 LocalStorage 中保存身份验证令牌即可使其正常工作。
我尝试使用 Laravel Sanctum 进行以下设置:
- 根据要求,我为用户创建一个令牌并将明文版本通过电子邮件发送给他们。
- 用户将在查询字符串中打开包含令牌的链接。
- 我会将(承载)令牌与授权标头附加在一起。
- 下一步(我假设)将调用使用“auth:sanctum”中间件的自定义 /api/login 端点。Bearer 令牌将对用户进行身份验证,然后我将使用
Auth::login()
. 在此之后,活动会话将用于对用户进行身份验证,从而避免将令牌保存在 localStorage 中。
但是我不能手动调用 Auth::login() 方法而不会出错(BadMethodCallException: Method Illuminate\Auth\RequestGuard::login does not exist.)
。
我无法弄清楚为什么这不起作用,或者我可能完全错了?
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
php - Laravel sanctum 寻找 api_token 列
当我尝试通过 api 令牌获取我的用户时,它返回此错误
但是用户表中没有api_token
列,令牌存储在oauth_access_tokens
表中,为什么要在users
表中查找它们?!
我如何尝试获得我的用户?
代码
kernel
route
任何想法?