问题标签 [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 回答
1749 浏览

laravel-sanctum - laravel jetstream request api route middleware protected api:sanctum return unauthenticated response

我在 session.php 文件中遇到了 'domain' => env ('SESSION_DOMAIN', null) 的问题。例如,在 .env 文件中设置 SESSION_DOMAIN 值时

SESSION_DOMAIN=mysite.test

登录不起作用,似乎有一个中间件。如果不设置此参数,登录工作正常,因此当我使用 sanctum 中间件 ex 调用 api 保护路由时。

我有未经身份验证的回复。如果使用 web.php 文件路由并插入相同的函数:

使用 api 前缀,它的工作正常。我关注了 laravel 8.x sanctum 文档https://laravel.com/docs/8.x/sanctum。在没有喷气流的 laravel 项目 7.* 中,我没有问题。对于这种现象有任何建议或解释。任何解释都会对我有所帮助!非常感谢。

0 投票
2 回答
792 浏览

laravel - Laravel Sanctum 和 Tenancy 未经身份验证的 API 令牌

我在使用 Laravel Sanctum 时遇到了问题,我已经在谷歌上搜索了将近 1 周,但没有找到解决方案,我将 Sanctum 与 hyn/多租户一起使用,我不使用 SPA 身份验证,而是使用 API 令牌身份验证。租户验证良好并生成令牌,但由于某种原因无法访问受 auth:sanctum 中间件保护的路由,这种情况仅发生在租户用户身上,令牌丢失或未通过,重定向到登录。

我认为问题不在于租赁包,我认为是 sanctum 的问题,因为主域工作正常,但子域中间件 sanctum 不起作用,因为失去 API 令牌授权。

我也定义了 SANCTUM_STATEFUL_DOMAINS 和 SESSION_DOMAIN 并且不起作用,我也通过了 X-XSRF-TOKEN 并且它也不起作用

这是我的 SANCTUM_STATEFUL_DOMAINS=new-api.test

和 SESSION_DOMAIN=.new-api.test

0 投票
2 回答
1244 浏览

laravel - 如何在没有 SPA 或图形界面的情况下,仅通过 POSTMAN 访问 Laravel Sanctum 的 API 路由?

我是第一次使用 Laravel Sanctum,尤其是使用 API。我必须创建一个仅用于返回 JSON 的报告的 API,这是我无法通过 POSTMAN 访问的主题,因为它告诉我"message": "Unauthenticated."

我按照项目中的文档告诉我的配置步骤进行操作。

我按照文档在我的项目中告诉我的配置步骤,即安装 sanctum,运行提供程序,创建令牌迁移,在用户 sanctum 模型中引用并放置 HasApiTokens,此时我不知道是什么再做。

一方面,文档告诉我,我可以通过放置这一行来访问,token = $user->createToken('token-name');但我不知道在哪里放置它,因为它没有接口,因为目的是通过 PowerBi 访问

这是我的路由 API

我的控制器

核心

用户

警卫

邮差 在此处输入图像描述

0 投票
1 回答
1777 浏览

laravel - Laravel Sanctum 前缀返回 404

尝试 Laravel 8(带有 Sanctum 和 VueJS 的 SPA),奇怪的是我无法让我的 Vue SPA 发出成功的csrf-cookie请求,如文档(Laravel - SPA 身份验证)中所示。我已经将我的 Vue SPA 设置为使用基本 url,/api并且我已经'prefix' => 'api'在我的config/sanctum.php. 但请求返回 404 响应。/api如果我从我的 Vue 配置中删除我的基本 url并发送csrf-cookie请求,我会收到成功 (200) 响应。我错过了什么吗?

0 投票
0 回答
170 浏览

laravel - 在 Android Studio 模拟器中访问 Laravel Sanctum

尝试从 Android Studio 模拟器发出请求时收到 400 错误代码。

在 Laravel 中,我为 Sanctum 提供了以下配置:

在将 Lando dev 用于 docker 环境时,它公开的虚拟主机是beexlaravel.lndo.site 但问题是,当我尝试从模拟器访问此域时,它无法解析域,这就是我添加10.0.2.2的原因配置文件,但仍然得到400错误。

cors配置文件中,我将supports_credentials设置为true和' allowed_origins ' => ['*']。

而且我还在引用标头处将其设置为列出的所有域。

我不确定是否有办法将通配符(dev porpuse)添加到有状态列表中,我尝试使用 * 。

我应该编辑模拟器主机文件以解决beexlaravel.lndo.site吗?还是我缺少任何其他配置?

0 投票
2 回答
8858 浏览

laravel - Laravel 8:在 API 中使用 Fortify

Laravel Fortify 可以在 API 的上下文中使用吗?据我了解,Fortify(虽然是无头的,即不包括 UI 层)允许我们自定义登录和注册页面,但它会在成功验证后自动重定向到主页页面。尽管 HOME 页面是可定制的,但这并不是 API 登录正常工作的方式。它应该简单地返回 JSON 格式的成功令牌,而不需要任何类型的重定向。

Fortify 中有一个authenticateUsing函数,但即便如此,我们也可以简单地自定义身份验证逻辑,而不是自定义返回的数据。重定向仍由 Fortify 执行。

如何在 REST API 的上下文中使用 Fortify?

注意:我将在我的 Vue 前端应用程序中使用它。我也打算让Sanctum进入游戏,但在此之前我只是想看看我是否可以使用 Fortify 进行常规的基于令牌的身份验证,而无需编写我自己的登录、注册和注销路由以及控制器功能。

0 投票
1 回答
1247 浏览

laravel - Laravel sanctum 自定义模型

我正在使用 Laravel sanctum 对我的 API 进行身份验证,并且我想自定义个人访问令牌模型,因此我执行了以下操作:

  • 我在 App 命名空间中创建了名为 PersonalAccessToken 的新模型。

  • 通过将此行添加到我的 AppServiceProvider boot() 方法中,我将在 sanctum 中使用的模型覆盖为我的新模型。

    圣所::usePersonalAccessTokenModel(PersonalAccessToken::class);

但是当我创建一个令牌时它工作正常并将其插入数据库但是这一行抛出异常

那是因为它的类型被暗示为 Laravel\Sanctum\PersonalAccessToken 的一个实例

我该如何解决

0 投票
0 回答
424 浏览

android - 如何在 laravel 中设置 Sanctum 以使用 Android 应用程序?收到 419 错误

我有一个混合 vuejs 应用程序,它在 web 版本上正常工作,但是419当从 Android 版本调用它时,它是从 Laravel 服务器获取的。

AXIOS 呼叫

CORS

核心

0 投票
0 回答
332 浏览

android - 是否可以让 Laravel Sanctum 同时使用令牌和身份验证?

我目前正在将 Laravel 与 VueJS 一起用于 Web 应用程序。将 Sanctum 用于 API 效果很好。

但是,我还创建了一个小型 Android 应用程序。此 android 应用程序需要创建令牌才能进行身份验证。为了使它工作,我必须从内核 API 部分中删除以下行,否则我会得到 419:

现在,这就是问题所在:如果我删除它,它将在 Android 应用程序中运行,但在 Web 应用程序中无法运行,反之亦然。

我想我也可以删除它并为网络版本创建令牌?虽然我使用的是 Laravel 标准登录。

您认为这里最好的方法是什么?

0 投票
3 回答
17735 浏览

laravel - Laravel sanctum 如何使令牌过期?

当我运行$user->currentAccessToken()->delete();令牌时,它会Auth::check()变成false预期的那样。

但是,当我走到personal_access_tokens桌子旁时,令牌仍然在那里。没有软删除字段。令牌过期了,Sanctum 怎么办?