使用thinkphp做一个用户登录功能是一个很简单的功能,最近公司的一个项目需要将thinkphp结合usbkey进行登录,(也就是需要插入usbkey进行登录,否则不放进行登录),开始的时候使用php+驱动(USB驱动)读取usbkey实现登录。在本地可以实现登录,上传到服务器上就不能登录(其原因就是php只能检测本地是否安装了usbkey的驱动,却不能检测其他客户端是否安装了驱动。)后来使用js来实现。这次可以实现登录。
实现的步骤:
1.安装USBKEY的驱动(本代码只使用飞天诚信USBKEY)
2.将USBKEY的HID(通过软件获取)放到数据库中。
3.利用js将usbkey的HID读取出来放到隐藏域中,通过from表单提交到后台,与数据库中的HID进行比对。相同就可以登录,不相同返回提示信息。
前台代码:
代码如下 | 复制代码 |
|
后台代码:
基本逻辑就是前台传过来的username、usbkey的HID、pwd进行验证。
其实每个网站多有自己的业务逻辑,这种方法只是个参考。具体实现方法还有很多种。例如:讲用户密码写入到usbkey中,只有插入USBKEY才能获取密码进行登录。
或者写入一些特殊的字符进行验证。