2016-12-15 99 views
1

我开发了一个Chrome扩展程序,可以在某些网页上执行一些理想的操作。如何控制API使用并允许试用/演示使用?

我的意图是能够销售API密钥,以便该扩展可以继续为购买了有效密钥的客户工作。

我已经将扩展与我的网站挂钩以检查密钥是否存在,否则没有数据传送到扩展。

我使用localStoragechrome.storage来保存从我的网站获得的API密钥。这工作正常。

当没有有效的密钥时(扩展程序刚刚安装,所以用户将获得100个免费查询,然后弹出一条消息提醒他们),我也做了免费的扩展工作作为试用/演示他们购买一个API密钥)。

问题是:如果用户删除扩展并重新安装它,我将无法检查此客户是否已经使用了100次免费查询。

我能做些什么来跟踪API使用情况,同时允许为新客户免费试用?

我的后端API函数驻留在PHP上。

编辑:我不想设置用户名/密码,因为他们可以从一个用户传递到另一个用户,然后,我最终得到一个付费客户与所有人共享他的帐户。

+0

[阻止用户篡改Chrome扩展程序的免费试用版](http://stackoverflow.com/questions/34348490/prevent-user-from-tampering-with-a-chrome-extensions-free-trial ) –

+1

阻止用户共享密钥的方式与共享登录名/密码的方式相同? –

+0

@AlexBlex用户将无法看到API密钥。密钥存储在'chrome.storage.sync'中,它们与之没有直接的交互。 – Ahmad

回答

0

我想你必须跟踪用户执行的免费查询次数。如果你在客户端执行该操作,就像在localStorage或chrome.storage中存储那种类型的数据一样,如果未被阻止或清除,它将丢失。如果你在服务器端执行该操作,跟踪数据将存储在你的数据库中(假设你使用了一个用于注册的API密钥),以便检查api密钥是否有效。

希望它有帮助!

+0

我可以将免费查询跟踪信息存储在我的服务器,但我如何确保用户不会删除扩展程序并重新安装并获得额外的100个免费查询?即使用户删除/重新安装了扩展程序,是否可以识别用户? – Ahmad

+0

不幸的是,对于像Chrome扩展那样的客户端的东西,你永远不能确保防止删除/取消防止或过期的用途。您可以进行身份​​验证来识别用户,并将您的许可证密钥绑定到他们的api密钥。 简而言之: - 您实现了一些简单快捷的Auth来使用您的扩展。 – bLuke

+0

不正确。同步存储也会在重新安装时消失。 –