使用Auth0保护WP REST API,实现OAuth2认证
v4.0.0
2023-10-16 16:27 UTC
Requires
- php: ^7 || ^8
README
本仓库包含一个工作的MU插件,该插件可以接收并验证从Auth0获取的访问令牌。关于如何实现以及使用的值,请查看此处的文章
使用Auth0保护WordPress REST API,实现OAuth2认证
安装
首先,安装Login by Auth0插件,然后添加Auth0凭据到wp-config.php
文件中,该文件位于wp-content/mu-plugins
中,或另一个在加载此插件之前会加载的位置。
// Auth0 credentials define( 'AUTH0_API_AUDIENCE', 'API identifier for the WP REST API' ); define( 'AUTH0_API_SIGNING_SECRET', 'API signing secret from Auth0' ); define( 'AUTH0_API_DEBUG', 'Set to `true` to add debugging log entries' );
使用Composer安装
安装此包
composer require joshcanhelp/wp-rest-api-auth0
在add_action
可用时,在某个地方要求Composer自动加载器,如在wp-content/mu-plugins
中。
手动安装
要使用Composer以外的手动方式安装,请下载最新版本的ZIP文件,并通过管理界面上传。请注意,此插件不会自动更新;更新需要通过删除并重新添加(确保您的站点处于维护模式)或直接通过FTP客户端(不推荐)进行。
使用Docker进行测试
您可以使用此Gist,通过Docker在本地运行并测试。
故障排除
尝试将AUTH0_API_DEBUG
设置为true
,并观察您的WP错误日志以获取有关失败的信息。
如果API请求不起作用,Apache可能没有将授权头传递给PHP。尝试将此行(或类似方法)添加到.htaccess
SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
此外,请确保您的WP API端点不遵循此模式,其中在/wp-json/
之前需要/index.php/
Example:
https://<your.site>/index.php/wp-json/
请参阅此解决方案以帮助解决此index.php问题。