我正在尝试将我的 access-control-allow-origin 设置为“*”,以便从 Wordpress 插件(我开发的,参见:wp-nostr-nip05)获得 Nostr NIP-05 身份验证
当我
nostr.json
用我的NIP-05 id和Apache(或Nginx)设置硬编码
access-control-allow-origin: '*'
一切正常。
现在,当我使用该插件时,
nostr.json
不再是一个平面文件,它是一个为 force-type
目录启用了 /.well-known/
的 PHP 脚本。这样文件就可以从用户表中选择适当的 NIP-05 id,键入 HTTP_HOST 和登录名。
访问 https://example.com 或 https://example.com/.well-known 会产生预期的标头,只有在访问时才会出现
https://example.com/.well-known/nostr.json
access-control-allow-origin 设置为:
access-control-allow-methods: POST, GET, OPTIONS
access-control-allow-origin: https://example.com, *
access-control-max-age: 1728000
不仅仅是:
access-control-allow-origin: *
我认为这是导致 NIP-05 验证失败的原因。
我一直在寻找 access-control-allow-origin 可能被 Wordpress 明确设置的地方,并发现:
./httpdocs/wp-includes/rest-api.php
./httpdocs/wp-includes/http.php
并注释掉:
header( 'Access-Control-Allow-Origin: ' . $origin );
header( 'Access-Control-Allow-Credentials: true' );
但是那似乎没有得到它。
还安装了一个 wordpress 插件来明确设置 wordpress 中的标题,不会改变任何东西
甚至尝试从内部发送它 nostr.json
Header("Access-Control-Allow-Origin: *");
没有效果。
我现在正式没主意了。
理想情况下,我希望能够在 /.well-known/ 目录中设置“*”,但我需要先让它工作
(评论提示的更新:没有 .htaccess 覆盖这个,理想情况下我会通过 htaccess 完成这一切,但似乎没有在这个服务器上使用。)
您可以尝试在 .htaccess 中指定它
<FilesMatch "/.well-known/nostr.json">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
或者您可以尝试在众所周知的文件夹中创建一个新的 .htaccess 文件并添加:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>