问题标签 [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 投票
1 回答
386 浏览

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 我不知道是什么原因造成的,也许有人有同样的问题?

0 投票
1 回答
976 浏览

laravel - 如何使用 CSRF 令牌测试 Laravel / Sanctum 端点

我有一个无头 laravel 实例连接到子域上的 SPA。作为我的第一个测试,我想在未登录的情况下尝试从 api 检索用户数据时看到 401。我的 api 路径定义如下:

我知道在用户成功连接到应用程序之前需要 CSRF 令牌,但我不确定如何将其包含在我的测试过程中,如下所示

在文档的Sanctum 测试部分中,我看到了以下方法:

对我来说,这里的问题是我不想尝试以用户身份加载此路径,我想知道如何模拟具有令牌但未登录的客户端计算机。这可能吗?

0 投票
3 回答
6394 浏览

laravel - Laravel sanctum SPA 身份验证注销不起作用

我在我的 Vue 项目中使用 laravel sanctum SPA 身份验证。一切正常,但即使在注销后

我仍然能够从中间件中的 api 路由获取数据

注销后我应该无法获取数据。它应该显示 401 unauthenticated 但事实并非如此。如何解决这个问题。我在这里被困了 3 天。我也遵循了 laravel 文档和其他教程,但是每个人都像我一样注销了。

0 投票
4 回答
12374 浏览

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,但仍然没有运气。

0 投票
0 回答
345 浏览

laravel - 如何通过 nuxt.js auth 模块注册用户?

我正在使用 nuxt 社区提供的 auth 模块(5.0 版)将用户登录到我的 laravel sanctum 后端。我知道 5.0 版仍在开发中,但我希望有人知道我的问题的答案。

基本上要注册到我的后端,我GET请求/sanctum/csrf-cookie首先获取一个 csrf cookie。之后我注册用户。现在根据我的后端,发出请求的用户在注册成功后直接登录。

如何正确告诉身份验证模块用户已登录?我尝试设置用户,但没有成功。

0 投票
2 回答
3988 浏览

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”可以解决此问题。但这似乎是一个完整的问题,我不应该做的事情。

我已经完全遵循了这两种方法——在这两种情况下,所有域、中间件等的设置都完全相同。

有任何想法吗?

0 投票
1 回答
3648 浏览

laravel - 失败重定向到主页时的 Sanctum 表单请求验证

我正在使用 sanctum 创建 API,并且工作正常我可以列出用户、更新、存储等。

我添加了中间件 auth:sanctum 和传递令牌,并添加了中间件 EnsureFrontendRequestsAreStateful,如文档中所述。

使用无效令牌不起作用,我被重定向到登录。

但是,当验证失败时会发生问题,我正在使用表单请求,但即使在控制器验证中,当失败时我会重定向到家。

我正在使用 Postman 测试 API,如果我禁用“自动跟随重定向”,我可以看到 setTargetUrl 使用的用于重定向的 html 页面,这是:

这指向我的家。

我尝试检查从哪里完成此重定向,但无法理解。并且不是通过 RedirectIfAuthenticated。

我希望看到带有错误消息的 JSON 响应。

即使是 Laravel 文档中用于创建令牌的示例代码,如果验证失败,也会有此重定向,此代码:

并且仅当验证失败但没有重定向时,所以我认为验证会重定向回来,但由于没有,它会重定向到家。

谢谢

更新

我找到了一种解决方法,但不确定这是否是唯一的方法。

添加一个 try catch 我可以在不重定向的情况下显示验证错误。

0 投票
0 回答
1476 浏览

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”所必需的

一些想法?

0 投票
0 回答
303 浏览

laravel - Laravel Sanctum 返回 401

我尝试从我的 Vue SPA 访问我的 Laraval API,但每次我发出请求时都会收到 401 Unauthorized。我已经尝试了多个 SO 问题的答案,但没有任何效果。

  • 我添加EnsureFrontendRequestsAreStateful到 API 中间件。
  • 我设置了我用于的代客域SANCTUM_STATEFUL_DOMAINS=goya.app
  • 我设置了会话环境:
  • 在 Vue 中我axios.defaults.withCredentials启用了。
  • 在请求标头中,我看到 XSRF 令牌已发送。

我还能尝试解决什么问题?

0 投票
1 回答
137 浏览

laravel - 像Kahoot这样的应用程序;Laravel 圣所还是护照?

我想建立一个像kahoot这样的游戏应用程序,为了好玩!:) 这将是一个应用程序,客人可以在其中注册并创建游戏,或者只是被邀请并使用 PIN 进入创建的游戏。然后他们可以回答各种问题。

这将是一个 SPA 结构化应用程序。Laravel 基于前端的 Vue。我已经在考虑使用像 Laravel Echo 这样的生态系统,或者像 Pusher 这样的 websockets。

但是,在考虑使用哪种身份验证方法时,我感到很困惑。在这种情况下,哪种身份验证会更好?Laravel Sanctum 还是 Passport?使用这些方法的优点和缺点是什么?你会推荐什么?在我看来,它们都是不错的选择。但是,我不想卡在某个点,因为我选择了错误的身份验证方法。

我很想听听你对这个问题的看法。

谢谢!