NodeJS 如何授权安装Electron应用程序?

hivapdat  于 2023-04-29  发布在  Node.js
关注(0)|答案(3)|浏览(219)

如果你需要对Electron应用程序进行某种授权机制,你会使用什么库/框架?
基本要求将是用户输入关于他自己的密钥或一些标识信息,并且他们使用应用的权利可以根据需要被远程地允许/阻止。
有点像许可证密钥,但在定义其使用权何时结束方面更灵活一些。

iovurdzv

iovurdzv1#

你的问题有点模糊(不是真正的编程问题)。
你在说软件许可证吗?我已经研究了很多,虽然有一堆交钥匙解决方案,他们往往是相对昂贵的(每月订阅费等)。
我最终选择了Easy Digital Downloads和他们的Software Licensing插件。后者可以根据需要设置许可证到期日期,更新警报和其他一些东西。技术支持也是响应。它是一个WordPress系统,所以你需要使用WordPress设置一个“商店”。
该API通过Javascript接口很简单-激活许可证,检查许可证有效性,并检查更新。
我发现的一个开源项目是Simple Licensing。这是免费的,但没有很好的记录,也没有任何支持。

brtdzjyr

brtdzjyr2#

这要看情况而定。我已经在这个答案中详细介绍了如何在没有许可证服务器的情况下生成和验证加密签名的许可证密钥。但是像这样的加密许可证密钥通常是永久的(尽管密钥内部可以有固定的到期时间),而且在许可证的有效性方面,听起来你想要一些更动态的东西,因为你提到你想要能够远程阻止许可证。
这就是许可证服务器的用武之地。
在其核心,大多数许可服务器是CRUD应用程序,这意味着它们是典型的服务器,允许您创建,读取,更新和删除资源。在这种情况下,该资源将是许可证。您可能希望创建一个接受许可证密钥参数的服务器端点,执行密钥的数据库查找,如果密钥存在,则检查密钥是否过期以及其他要求,例如其blocked列。
下面是一个基本的Express app,减去pg数据库位:

const express = require('express')
const app = express()
const { Client } = require('pg')
const db = new Client()
const {
  PORT = 8080
} = process

app.get('/validate/:licenseKey', async (req, res) => {
  const { licenseKey } = req.params
  const { rows } = await db.query('select * from licenses where key = $1::text limit 1', [licenseKey])
  const [license] = rows
  if (license == null) {
    return res.send({ valid: false, code: 'NOT_FOUND' })
  }

  if (license.blocked) {
    return res.send({ valid: false, code: 'BLOCKED' })
  }

  if (license.expiry < Date.now()) {
    return res.send({ valid: false, code: 'EXPIRED' })
  }

  return res.send({ valid: true, code: 'VALID' })
});

app.listen(PORT, async () => {
  await db.connect()

  console.log(`Server is running on port ${PORT}`)
})

但是,如果你不是特别热衷于编写和维护自己的内部许可系统,我是一个名为Keygen的软件许可API的创始人,它可以帮助你快速启动和运行,而不必编写和托管自己的许可服务器。
Keygen是一个典型的HTTP JSON API服务(即。e.不需要将软件与应用程序打包在一起)。它可以用于任何编程语言和框架,如Electron。根据您的主要需求,它支持远程挂起(阻止)许可证。
在其最简单的形式中,使用Keygen验证许可证密钥就像击中单个JSON API端点一样容易(请在终端中运行):

curl -X POST https://api.keygen.sh/v1/accounts/demo/licenses/actions/validate-key \
  -d '{
        "meta": {
          "key": "C1B6DE-39A6E3-DE1529-8559A0-4AF593-V3"
        }
      }'

最近,我将一个添加许可证密钥验证以及设备激活和管理到Electron应用程序的示例放在一起。你可以在GitHub上查看这个repo:https://github.com/keygen-sh/example-electron-license-activation

yc0p9oo0

yc0p9oo03#

如果有人正在寻找一个免费的在线许可平台,你可以尝试Gatekeeper
许可证检查可以通过单个API调用完成。它还允许您远程调试应用程序,检查应用程序更新和其他各种功能。

相关问题