问题标签 [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 - 使用 stancl 多租户时,Sanctum 找不到personal_access_tokens 表
正如我所看到的,一切都很好 - 表存在,并且在使用 stancl 多租户时发出请求的用户有正确的令牌。此外,当我从控制台向数据库发出请求时,响应是正确的,例如 - “select * from "personal_access_tokens" where "token" = 'token symbols'" 返回该行。但是,一旦我向任何需要身份验证的 api 端点('auth:sanctum')发出请求,它就会返回以下错误:SQLSTATE[42P01]: Undefined table: 7 ERROR: relationship "personal_access_tokens" does not exist LINE 1: select * from "personal_access_tokens" where "token" = $1 我不知道是什么原因造成的,也许有人有同样的问题?
laravel - 如何使用 CSRF 令牌测试 Laravel / Sanctum 端点
我有一个无头 laravel 实例连接到子域上的 SPA。作为我的第一个测试,我想在未登录的情况下尝试从 api 检索用户数据时看到 401。我的 api 路径定义如下:
我知道在用户成功连接到应用程序之前需要 CSRF 令牌,但我不确定如何将其包含在我的测试过程中,如下所示
在文档的Sanctum 测试部分中,我看到了以下方法:
对我来说,这里的问题是我不想尝试以用户身份加载此路径,我想知道如何模拟具有令牌但未登录的客户端计算机。这可能吗?
laravel - Laravel sanctum SPA 身份验证注销不起作用
我在我的 Vue 项目中使用 laravel sanctum SPA 身份验证。一切正常,但即使在注销后
我仍然能够从中间件中的 api 路由获取数据
注销后我应该无法获取数据。它应该显示 401 unauthenticated 但事实并非如此。如何解决这个问题。我在这里被困了 3 天。我也遵循了 laravel 文档和其他教程,但是每个人都像我一样注销了。
laravel - Laravel 7 Vue 2 Sanctum 登录错误 419;CSRF 令牌不匹配
我正在使用 Laravel 与 Vue 的默认集成(不是使用 Vue CLI 的单独项目)。我正在尝试对用户进行身份验证,但它总是显示 419 错误。我已将 csrf 令牌包含到 Axios 的标头中,但它仍然提供不匹配错误。
引导程序.js
内核.php
cors.php
网页.php
登录模式.vue
用户.js | Vuex 模块
我正在配置与本文类似的项目。他是一个单独的项目,而我在 Laravel 项目中。我还参考了 Laravel 关于配置身份验证的 sanctum 文档,但它仍然不起作用。回顾了很多 StackOverflow 问答,到目前为止还没有运气。大多数人都在谈论向 Axios 添加 CSRF 标头,我已经在 bootstrap.js
. 我确实尝试包括一个隐藏的输入来保存 CSRf,但仍然没有运气。
laravel - 如何通过 nuxt.js auth 模块注册用户?
我正在使用 nuxt 社区提供的 auth 模块(5.0 版)将用户登录到我的 laravel sanctum 后端。我知道 5.0 版仍在开发中,但我希望有人知道我的问题的答案。
基本上要注册到我的后端,我GET
请求/sanctum/csrf-cookie
首先获取一个 csrf cookie。之后我注册用户。现在根据我的后端,发出请求的用户在注册成功后直接登录。
如何正确告诉身份验证模块用户已登录?我尝试设置用户,但没有成功。
php - Laravel Sanctum 和 Vue - 未经身份验证
我现在遵循两种不同的方法在我的 Laravel 7/Vue SPA 中使用 Laravel Sanctum 进行身份验证。两者都遇到了同样的问题。以下是方法:
https://blog.codecourse.com/setting-up-laravel-sanctum-airlock-for-spa-authentication-with-vue/
https://dev.to/aschmelyun/authenticating-a-vue-spa-is-easy-with-laravel-sanctum-392a
两者都做同样的事情——安装 Sanctum,安装标准的 auth 脚手架,设置中间件,添加一两个虚拟用户。然后,使用 Axios 打sanctum/csrf-cookie
路线,然后打路线,/login
并传入电子邮件和密码。
但是,使用这两种方法,我都会遇到相同的问题 - 401 'Unauthenticated' 错误。浏览器开发工具的 Network 选项卡显示sanctum/csrf-cookie route
返回 204 以及 Laravel 会话和 XSRF cookie 已设置。该login
路由显示 302 和一个到 /home 的重定向,这是标准的 Laravel auth 重定向。然后当它到达 api.php 文件中定义的路由时:
它返回 401 - 未经身份验证。
现在,使这项工作看起来符合预期的唯一方法是调整 RouteServiceProvider.php 中的 mapApiRoutes() 函数:
将中间件属性从“api”更改为“web”可以解决此问题。但这似乎是一个完整的问题,我不应该做的事情。
我已经完全遵循了这两种方法——在这两种情况下,所有域、中间件等的设置都完全相同。
有任何想法吗?
laravel - 失败重定向到主页时的 Sanctum 表单请求验证
我正在使用 sanctum 创建 API,并且工作正常我可以列出用户、更新、存储等。
我添加了中间件 auth:sanctum 和传递令牌,并添加了中间件 EnsureFrontendRequestsAreStateful,如文档中所述。
使用无效令牌不起作用,我被重定向到登录。
但是,当验证失败时会发生问题,我正在使用表单请求,但即使在控制器验证中,当失败时我会重定向到家。
我正在使用 Postman 测试 API,如果我禁用“自动跟随重定向”,我可以看到 setTargetUrl 使用的用于重定向的 html 页面,这是:
这指向我的家。
我尝试检查从哪里完成此重定向,但无法理解。并且不是通过 RedirectIfAuthenticated。
我希望看到带有错误消息的 JSON 响应。
即使是 Laravel 文档中用于创建令牌的示例代码,如果验证失败,也会有此重定向,此代码:
并且仅当验证失败但没有重定向时,所以我认为验证会重定向回来,但由于没有,它会重定向到家。
谢谢
更新
我找到了一种解决方法,但不确定这是否是唯一的方法。
添加一个 try catch 我可以在不重定向的情况下显示验证错误。
angular - 正确配置 Laravel Sanctum 和 Angular
我正在尝试使用 Sanctum 将我的 angular-app 连接到我的 Laravel 7。
后端在 wamp 虚拟主机调用(pruebas.test)中运行,配置如下:
.env:
配置/cors.php
config/session.php(现在是same_site 等于none,但我尝试了宽松、严格和空选项)
内核.php
在前面,我们使用 Angular 10 并实现了一个使用以下代码登录的方法:
此外,我们还可以在标头请求中添加 withCredentials 并拦截:
但是浏览器从不设置 cookie,这取决于'same_site'
我们有不同响应的配置,但 cookie 从未设置。
same_site=lax => 此 Set-Cookie 已被阻止,因为它具有“SameSite=lax”属性,但来自跨站点响应,不是对顶级导航的响应。
same_site=strict => 此 Set-Cookie 已被阻止,因为它具有“SameSite=strict”属性,但来自跨站点响应,而不是对顶级导航的响应。
same_site=none => 此 Set-Cookie 已被阻止,因为它具有“SameSite=none”属性但没有“Secure”属性,这是使用“SameSite=none”所必需的
一些想法?
laravel - Laravel Sanctum 返回 401
我尝试从我的 Vue SPA 访问我的 Laraval API,但每次我发出请求时都会收到 401 Unauthorized。我已经尝试了多个 SO 问题的答案,但没有任何效果。
- 我添加
EnsureFrontendRequestsAreStateful
到 API 中间件。 - 我设置了我用于的代客域
SANCTUM_STATEFUL_DOMAINS=goya.app
。 - 我设置了会话环境:
- 在 Vue 中我
axios.defaults.withCredentials
启用了。 - 在请求标头中,我看到 XSRF 令牌已发送。
我还能尝试解决什么问题?
laravel - 像Kahoot这样的应用程序;Laravel 圣所还是护照?
我想建立一个像kahoot这样的游戏应用程序,为了好玩!:) 这将是一个应用程序,客人可以在其中注册并创建游戏,或者只是被邀请并使用 PIN 进入创建的游戏。然后他们可以回答各种问题。
这将是一个 SPA 结构化应用程序。Laravel 基于前端的 Vue。我已经在考虑使用像 Laravel Echo 这样的生态系统,或者像 Pusher 这样的 websockets。
但是,在考虑使用哪种身份验证方法时,我感到很困惑。在这种情况下,哪种身份验证会更好?Laravel Sanctum 还是 Passport?使用这些方法的优点和缺点是什么?你会推荐什么?在我看来,它们都是不错的选择。但是,我不想卡在某个点,因为我选择了错误的身份验证方法。
我很想听听你对这个问题的看法。
谢谢!