Javascript 如何锁定web应用程序';某些计算机/设备的功能?

Javascript 如何锁定web应用程序';某些计算机/设备的功能?,javascript,jquery,web-applications,Javascript,Jquery,Web Applications,我使用PHP、mySQL、javascript和jQuery为一家药店编写了一个送货web应用程序,他们可以在电脑上输入送货信息,出去实际送货,让客户用手指在司机的手机上签名。我现在正在将新功能集成到这个网站中,以跟踪每个员工的工作时间,方法是允许他们登录并单击“打卡上班”,然后在轮班结束时单击“打卡下班”。我现在遇到的问题是,我们不希望员工能够在家“打卡”或“打卡”,但我们仍然需要他们能够从任何地方访问该网站,以获取交付的签名 我想到了几个解决方案,但似乎没有办法实施它们。我的解决方案包括:

我使用PHP、mySQL、javascript和jQuery为一家药店编写了一个送货web应用程序,他们可以在电脑上输入送货信息,出去实际送货,让客户用手指在司机的手机上签名。我现在正在将新功能集成到这个网站中,以跟踪每个员工的工作时间,方法是允许他们登录并单击“打卡上班”,然后在轮班结束时单击“打卡下班”。我现在遇到的问题是,我们不希望员工能够在家“打卡”或“打卡”,但我们仍然需要他们能够从任何地方访问该网站,以获取交付的签名

我想到了几个解决方案,但似乎没有办法实施它们。我的解决方案包括:

  • 通过单击将文件保存到离散位置的按钮,允许管理员帐户“激活时钟输入/输出功能”。当非管理员帐户在该计算机上使用该站点时,该站点将找到该文件,并允许他们登录。这似乎是javascript的安全问题,不可行
  • 允许管理员帐户通过单击一个按钮“激活时钟输入/输出功能”,该按钮将记录该机器的某些唯一标识符,并将其保存到数据库中。当非管理员登录时,站点将检查数据库中的该值,并将其与计算机的值进行比较,以授予对“时钟输入/输出”功能的访问权限
  • 我认为人们会使用的最常见的解决方案是IP地址,但我认为这不起作用,因为药店有动态IP

    有人知道如何使我的两个解决方案中的任何一个起作用,或者有不同的想法来获得相同的结果吗


    如果这不是发布这类问题的合适位置,有人能建议我在其他地方发布吗?

    你可以使用HTML5地理定位来查看他们是否真的在药店内。你必须检查员工的设备是否支持这一点,但是有一个HTML5API

    navigator.geolocation.getCurrentPosition(function (result) {
        console.log("Lat: " + result.latitude + " Long:" + result.longitude);
    });
    
    另一种选择是在药店张贴每日更改的进出密码。员工们必须到药房去看看是什么才能打卡上班


    还有一种可能也是最简单的选择,就是在药房里实际安装一台传统的时钟输入/输出机器;)

    显然,您可以使用HTML5 Web存储或本地存储将信息保存到用户的浏览器中。它就像一个cookie,只是在浏览器关闭或计算机关闭时不会过期或被清除。我在想,如果我用和我原来计划一样的方法,它会奏效的。唯一的缺点是,如果用户清除了他们的浏览器历史记录,这将被删除。我认为这将是较小的罪恶,因为我认为药店永远不会清除他们的浏览器历史


    如果/当我决定使用此解决方案时,我会检查此答案,看起来我可能会这样做。

    您正在寻找cookies。(或者,如果你想装模作样的话,客户端证书)我认为Cookies太临时了。通过清除浏览历史记录等,它们很容易被删除。不过,客户端证书可能是答案……地理定位可能已经足够好了。这不是我想的,但如果其他一切都失败了,这可能会奏效。发布每日密码会有用,但我知道经理们会懒得这么做。物理机器是不可能的哈哈,如果你让他们用手机扫描其中一种产品的条形码怎么办?我不确定,但我假设这里的“时钟”是交付的开始。不,如果你愿意的话,它们实际上是两个不同的“模块”。这只是为了记录他们为工资单工作的时间。我可能会想到一个条形码解决方案,这是一个好主意,但我已经有了一个交付程序(VB),它导致了一些问题(这就是为什么我创建这个模块),所以他们更习惯于只去电脑和登录。