0

我在使用 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

4

2 回答 2

0

您必须扩展 PersoanlAccessToken 并use UsesTenantConnection; 在提供者的引导方法中添加您需要Sanctum::usePersonalAccessTokenModel(PersonalAccessToken::class);在使用您自己的模型的地方添加。

我正在使用 spatie 的租户,我做了以下事情:

<?php


namespace App\Models\Tenant;
use Laravel\Sanctum\PersonalAccessToken as SanctumPersonalAccessToken;
use Spatie\Multitenancy\Models\Concerns\UsesTenantConnection;

class PersonalAccessToken extends SanctumPersonalAccessToken
{
    use UsesTenantConnection;
}

在我的 AppServiceProvider 中我添加了

Sanctum::usePersonalAccessTokenModel(PersonalAccessToken::class);

我自己的模型

希望这会有所帮助

于 2020-12-18T12:26:21.890 回答
0

在第三级域检查你的 .htaccess 文件是否有这个指令:

RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

我有一个类似的问题:Laravel sanctum unauthenticated

于 2020-11-19T14:58:30.083 回答