我在我的项目中使用Laravel圣所,并以angular为前端。从第二个api请求中获取未经身份验证的信息。请让我知道我要去哪里了
前端-> 127.0.0.1:4200
后端->本地主机:8888
.env配置
SESSION_DOMAIN =本地主机 SANCTUM_STATEFUL_DOMAINS = 127.0.0.1
将中间件 auth:sanctum 添加到api.php中的路由组
答案 0 :(得分:3)
例如添加您的域 我的 API 在 localhost:8000 上运行我的客户端在 localhost:3000 上运行所以我的环境设置如下
SANCTUM_STATEFUL_DOMAINS=localhost:8000,localhost:3000
另外,添加您的会话域
SESSION_DOMAIN=localhost
答案 1 :(得分:2)
从您共享的屏幕截图中,我看到您的域是localhost而不是127.0.01,只需执行以下操作:
SANCTUM_STATEFUL_DOMAINS=localhost
答案 2 :(得分:2)
对于使用Laravel Homestead的任何人,请使用您的实际域。
SANCTUM_STATEFUL_DOMAINS=homestead.test
答案 3 :(得分:1)
对于任何出现“取消身份验证”错误的人,请确保您遵循以下步骤。
完成此步骤后,您将通过 auth:sanctum 中间件通过API路由成功进行身份验证。
其他需要注意的事情:
对于原始问题,请确保您维护相同的域。我的意思是两者都使用localhost。并设置SANCTUM_STATEFUL_DOMAIN = localhost:4200
已编辑
还设置了SESSION_DRIVER
答案 4 :(得分:0)
答案 5 :(得分:0)
经过两天的痛苦和绝望才能得出这个结论:Bearer令牌未附加到请求中,这是由于我的.htaccess配置所致。
如果您像我一样无法通过API令牌进行身份验证,请尝试在您的Laravel项目的公共目录中的.htaccess文件中添加以下行:
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
在RewriteEngine On
指令之后。
信用:Laravel not detecting auth token sent in the header and JWT package