【发布时间】:2019-11-26 05:25:13
【问题描述】:
客户使用我的桌面应用程序。客户是拥有许可证密钥和他的计算机 MAC 地址的用户。桌面应用程序只能在一个实例上使用。
所以当用户购买许可证并注册时(意味着他下载、打开桌面应用程序、输入并提交他的许可证密钥),我将首先检索他的 MAC 地址,然后向我的 API 发出 POST 请求, /user 以这种方式使用参数 {license-key: "license_here", mac-address: "mac_here"} 所以这些都保存到我的数据库中。
现在,一旦用户注册,我应该如何保护桌面应用程序中的 API 调用?
假设用户想要访问他的设置选项卡,我是否应该将{license-key: "license_here", mac-address: "mac_here"} 作为参数提供给GET 请求并检查它是否与我的数据库中他的许可证密钥和MAC 地址匹配,如果匹配,则显示所有他的设置是从设置选项卡上的数据库中检索到的吗?
或者有更安全的方法吗?
我认为的另一种方法是,例如,hash 许可证密钥和 MAC 地址,concat 它们并使用我将用于每个请求的身份验证令牌。
我正在使用 API 而不是本地保存,因为我将在完成桌面应用程序后创建一个移动应用程序,并且我需要在两个应用程序之间共享信息。
将NodeJS 与Express 和MongoDB/Mongoose 一起使用。
【问题讨论】:
标签: node.js rest api license-key