【发布时间】:2015-03-14 04:42:39
【问题描述】:
我想为 chrome 创建一个 SaaS 扩展。
当他们的订阅不再是最新的时,我如何确保他们不能使用我的扩展程序的功能?
我的基本想法是,每当他们想使用我的 chrome 扩展程序的功能时,该扩展程序都会向我的服务器发出 ajax 请求,以检查今天的日期是否早于我数据库中订阅的结束日期。
扩展显然是基于客户端的,所以即使我在客户端有代码,只有当我的 ajax 请求返回他们有当前订阅时才会执行,但有进取心的人不能只看我的代码并运行它通过控制台以超出我的 ajax 请求要求的方式?
有没有办法强制订阅?
编辑:
这主要是一个概念性问题,但我会尽量清楚。
我的应用程序运行所需的所有 javascript 代码都在他们的本地机器上,在他们的源文件中(它不需要访问我的数据库)。
所以你可以把我在他们本地机器上的代码想象成这样:
if (usersSubscriptionIsCurrent) {
runFeature()
}
如果对我的服务器的 Ajax 请求返回他们的订阅是最新的,则 usersSubscriptionIsCurrent 为 true。
仍然可以通过查看源代码,然后在他们的控制台中输入runFeature() 来运行我的功能。
我想阻止这种情况。
我的扩展程序依赖于将数据从扩展程序发送到相关的 chrome 应用程序,所以我只是想到我也可以将数据发送到我的服务器,然后服务器可以将数据转发到用户的 chrome 应用程序,如果他们有当前订阅。但是哎呀。
我想得越多,我就越觉得我无法阻止,但我想我会问一下,以防有人有聪明的主意。
【问题讨论】:
-
能否附上一些关于这个问题的相关代码?
-
已编辑,希望更清楚
-
您的分机需要付费吗?这是对您的问题的参考。您可以在 User 模型上跟踪“subscription_active”布尔值或类似值。当用户登录时,您可以检查 API 以查看用户订阅的状态。看:stackoverflow.com/questions/18085777/…
-
我的意思是,即使 API 说他们的订阅已经结束,他们也可以查看我的扩展源代码,找到他们想要运行的功能,然后通过控制台运行它,绕过我的订阅检查.
-
如果应用程序运行所需的所有 javascript 文件都在用户的本地计算机上,我不知道你可以阻止他们在本地文件上执行此操作。
标签: google-chrome-extension saas