我在Laravel Sanctum上遇到问题,已经搜索了将近1个星期,却没有找到解决方案,我将Sanctum与hyn /多租户一起使用,我不使用SPA身份验证,但使用API令牌身份验证。租户可以很好地进行身份验证并生成令牌,但是由于某些原因无法访问受auth:sanctum中间件保护的路由,这仅在租户用户发生,令牌丢失或未传递,重定向到登录。
我不认为问题出在租赁包上,我认为这与圣域有关,因为在主域中可以正常工作,而对子域中间件圣所则不起作用,因为失去了API令牌授权。
我也定义了SANCTUM_STATEFUL_DOMAINS和SESSION_DOMAIN,但不起作用,我也通过了X-XSRF-TOKEN,它也不起作用
这是我的 SANCTUM_STATEFUL_DOMAINS = new-api.test
和 SESSION_DOMAIN = .new-api.test
答案 0 :(得分:0)
在第三级域上,检查您的.htaccess文件是否具有以下指令:
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
我遇到了类似的问题:Laravel sanctum unauthenticated
答案 1 :(得分: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);
我自己的模特
希望这会有所帮助