如何解决保护公共 WP 插件中使用的 Google API 密钥
大家好,
我打算构建一个需要 Google Search Console API 的 WP 插件。目标是不将我的 API 密钥和客户端 ID 与插件一起发送。
- WP 插件 -> 从 domain.com 请求数据
- domain.com 从 Google Search Console API 请求数据
- domain.com 将数据发送到 WP 插件而不保存
- WP Plugin 将数据保存在本地安装位置
我可以知道这是否可行以及我需要做什么吗?
谢谢,
编辑:2 月 16 日
我发现这可以通过从客户端(wp 插件)对用户进行身份验证来完成
require_once dirname(__FILE__) . '/vendor/autoload.PHP';
$client = new Google_Client();
$client->setScopes( array( 'https://www.googleapis.com/auth/webmasters','https://www.googleapis.com/auth/webmasters.readonly' ) );
$client->setAccesstype( 'offline' );
$client->setRedirectUri( 'urn:ietf:wg:oauth:2.0:oob' );
$client->setClientId( '302343592020-r7ouc9s9jaukc54j48s3k9fg26eeiaqr.apps.googleusercontent.com' );
$client->setIncludeGrantedScopes(true);
//Generate access code from the link below
//echo '<a href="'.$client->createAuthUrl().'" target="_blank">Access Code</a>';
$code = '###############';
$client->authenticate($code); $access_token = $client->getAccesstoken();
然而,访问令牌是空的
解决方法
我首先假设:domain.com 有可用的 API,同时也是 WordPress。
(domain.com) 您应该使用 POST 或 GET 方法创建自定义 REST API 端点(完全取决于您如何处理和授权请求 - 我将使用 POST,因为可以在 domain.com 上验证请求,例如例如,domainX.com 被列入白名单,可以访问 API 密钥)。
WordPress API 参考:https://developer.wordpress.org/rest-api/reference/
WordPress API 指南:https://kinsta.com/blog/wordpress-rest-api/
在插件中,您将向 domain.com 发出 POST 请求并在正文中传递一些内容 - 可能是 URL 之类的内容(由您决定)。您还应该使用身份验证。 domain.com 将接收请求、处理它并在响应中返回 API 密钥。从那里一直到山下:)
让我知道这是否有意义 - 我可以为此发布一些代码,但有很多不同的方法可以实现...
,我会将此问题标记为已解决。
我开始意识到 WP Plugin 可以通过我的域进行身份验证以获取访问令牌。然后使用访问令牌直接从 wp_plugin 调用 google api。
这样我就不会将我的客户端密钥与插件源代码一起发送。
,如果您询问如何隐藏您的 Google API 密钥,您可以使用名为 .env 的文件
不要在点之前放任何东西
在这里,您可以放置一个变量,然后将其拉到 python(可能需要创建一个新文件并将其拉到您使用的任何语言。
您可以使用此代码来使用它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。