微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

保护公共 WP 插件中使用的 Google API 密钥

如何解决保护公共 WP 插件中使用的 Google API 密钥

大家好,

我打算构建一个需要 Google Search Console API 的 WP 插件。目标是不将我的 API 密钥和客户端 ID 与插件一起发送。

  1. WP 插件 -> 从 domain.com 请求数据
  2. domain.com 从 Google Search Console API 请求数据
  3. domain.com 将数据发送到 WP 插件而不保存
  4. 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(可能需要创建一个新文件并将其拉到您使用的任何语言。

您可以使用此代码来使用它。

这是指南:https://docs.repl.it/repls/secret-keys

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。