对于你的第一个问题,是的,你绝对可以实现产品密钥授权Electron应用程序(我已经做了几次我自己)。对于第二个问题,我鼓励您拥有包含相关许可证的用户帐户,例如用户2可以做X和Y,而用户2只能做X.
那么为什么 - 提供用户帐户有什么优势?
首先,它不需要你和你的客户来跟踪许可证密钥(一个巨大的烦恼,特别是当他们失去它们时),因为它们都可以在用户的幕后处理帐户。他们所要做的就是登录(就像他们习惯做的那样!),然后您可以查询与其用户帐户关联的所有许可证。
也许最重要的是,通过实施用户帐户,您可以为您的客户提供自助服务许可证激活!即由于所有的许可证(注意多个每个用户有多个许可证的可能性)现在与单个用户帐户相关联,您可能会提示他们例如当他们在未识别的机器上启动您的应用程序时购买新的许可证,或者轻松提供产品附加功能以获取附加功能。
如果你不是特别热衷于编写自己的授权系统,我是一个名为Keygen的软件授权API的创始人,它可以帮助您快速启动并运行,而无需托管和编写您的自己的授权服务器我专注于开发独立开发人员的Keygen,尤其是构建桌面应用程序的开发人员。我在编写第一个Electron应用程序之后创建了这项服务,并意识到(当时令人惊讶)没有此类服务,这对我来说非常令人沮丧。所以我为自己和其他开发者写了一篇。由于Keygen只是一个API(即没有需要与应用程序打包在一起的软件),Keygen可以用于任何编程语言(所以我们不仅限于JavaScript)。以其最简单的形式,例如没有用户帐户,只有许可证密钥,验证与凯基许可证密钥是创下了单一的API端点一样容易,
curl -X POST https://api.keygen.sh/v1/accounts/dc7ac1f74ce0/licenses/actions/validate-key \
-H 'Content-Type: application/vnd.api+json' \
-H 'Accept: application/vnd.api+json' \
-d '{
"meta": {
"key": "B8A5-91D7-CB9A-DAE4-4F6E-1128"
}
}'
就像我除了上面提到的,许可证管理,凯基还提供API端点管理用户帐户(这也是我推荐的,因为它是一个更好的用户体验),允许您将许可证与用户关联起来,并跟踪他们使用您的应用的计算机,如果您希望实施多个许可证,用户(如功能许可证),机器锁定许可证,或者您只想知道每个用户拥有多少台机器。
我希望能回答你的问题并给你一些见解。很高兴回答您的任何其他问题,因为我现在为Electron应用程序实施了几次许可。 :)
+1,如果用户不通过Keygen API使用互联网发布初始一次性许可验证,我该如何离线维护许可? – ajay
@ajay @ajay当用户第一次输入许可证密钥时,您可以将其存储或某种类型的本地存储中的表示,然后仅在本地存储中不存在密钥时才提示输入许可证密钥。如果他们的密钥最终到期,那么在用户访问互联网时将过期存储在本地存储器中或重新验证密钥(例如,在每次启动时)是一个好主意。 – ezekg
谢谢,@ezekg。您是否也可以指导如何防止部署软件包中的许可证验证/逻辑JavaScript代码发生更改? – ajay